@hebcal/leyning 6.2.3 → 7.0.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/dist/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/leyning v6.2.3 */
1
+ /*! @hebcal/leyning v7.0.0 */
2
2
  var hebcal__leyning = (function (exports, core) {
3
3
  'use strict';
4
4
 
@@ -12,6 +12,238 @@ function _typeof(obj) {
12
12
  }, _typeof(obj);
13
13
  }
14
14
 
15
+ var Genesis=[0,31,25,24,26,32,22,24,22,29,32,32,20,18,24,21,16,27,33,38,18,34,24,20,67,34,35,46,22,35,43,54,33,20,31,29,43,36,30,23,23,57,38,34,34,28,34,31,22,33,26];var Exodus=[0,22,25,22,31,23,30,29,28,35,29,10,51,22,31,27,36,16,27,25,26,37,30,33,18,40,37,21,43,46,38,18,35,23,35,35,38,29,31,43,38];var Leviticus=[0,17,16,17,35,26,23,38,36,24,20,47,8,59,57,33,34,16,30,37,27,24,33,44,23,55,46,34];var Numbers=[0,54,34,51,49,31,27,89,26,23,36,35,16,33,45,41,35,28,32,22,29,35,41,30,25,19,65,23,31,39,17,54,42,56,29,34,13];var Deuteronomy=[0,46,37,29,49,30,25,26,20,29,22,32,31,19,29,23,22,20,22,21,20,23,29,26,22,19,19,26,69,28,20,30,52,29,12];var Joshua=[0,18,24,17,24,15,27,26,35,27,43,23,24,33,15,63,10,18,28,51,9,45,34,16,33];var Judges=[0,36,23,31,24,31,40,25,35,57,18,40,15,25,20,20,31,13,31,30,48,25];var Ruth=[0,22,23,18,22];var Isaiah=[0,31,22,26,6,30,13,25,23,20,34,16,6,22,32,9,14,14,7,25,6,17,25,18,23,12,21,13,29,24,33,9,20,24,17,10,22,38,22,8,31,29,25,28,28,25,13,15,22,26,11,23,15,12,17,13,12,21,14,21,22,11,12,19,11,25,24];var Jeremiah=[0,19,37,25,31,31,30,34,23,25,25,23,17,27,22,21,21,27,23,15,18,14,30,40,10,38,24,22,17,32,24,40,44,26,22,19,32,21,28,18,16,18,22,13,30,5,28,7,47,39,46,64,34];var Lamentations=[0,22,22,66,22,22];var Baruch=[0,22,35,38,37,9,72];var Ezekiel=[0,28,10,27,17,17,14,27,18,11,22,25,28,23,23,8,63,24,32,14,44,37,31,49,27,17,21,36,26,21,26,18,32,33,31,15,38,28,23,29,49,26,20,27,31,25,24,23,35];var Daniel=[0,21,49,100,34,30,29,28,27,27,21,45,13,64,42];var Hosea=[0,9,25,5,19,15,11,16,14,17,15,11,15,15,10];var Joel=[0,20,27,5,21];var Amos=[0,15,16,15,13,27,14,17,14,15];var Obadiah=[0,21];var Jonah=[0,16,11,10,11];var Micah=[0,16,13,12,14,14,16,20];var Nachum=[0,14,14,19];var Habakkuk=[0,17,20,19];var Zephaniah=[0,18,15,20];var Haggai=[0,15,23];var Zechariah=[0,17,17,10,14,11,15,14,23,17,12,17,14,9,21];var Malachi=[0,14,17,24];var numverses = {Genesis:Genesis,Exodus:Exodus,Leviticus:Leviticus,Numbers:Numbers,Deuteronomy:Deuteronomy,Joshua:Joshua,Judges:Judges,Ruth:Ruth,"I Samuel":[0,28,36,21,22,12,21,17,22,27,27,15,25,23,52,35,23,58,30,24,42,16,23,28,23,43,25,12,25,11,31,13],"II Samuel":[0,27,32,39,12,25,23,29,18,13,19,27,31,39,33,37,23,29,32,44,26,22,51,39,25],"I Kings":[0,53,46,28,20,32,38,51,66,28,29,43,33,34,31,34,34,24,46,21,43,29,54],"II Kings":[0,18,25,27,44,27,33,20,29,37,36,20,22,25,29,38,20,41,37,37,21,26,20,37,20,30],Isaiah:Isaiah,Jeremiah:Jeremiah,Lamentations:Lamentations,Baruch:Baruch,Ezekiel:Ezekiel,Daniel:Daniel,Hosea:Hosea,Joel:Joel,Amos:Amos,Obadiah:Obadiah,Jonah:Jonah,Micah:Micah,Nachum:Nachum,Habakkuk:Habakkuk,Zephaniah:Zephaniah,Haggai:Haggai,Zechariah:Zechariah,Malachi:Malachi};
16
+
17
+ /**
18
+ * Names of the books of the Torah. BOOK[1] === 'Genesis'
19
+ * @readonly
20
+ * @const {string[]}
21
+ */
22
+ var BOOK = ['', 'Genesis', 'Exodus', 'Leviticus', 'Numbers', 'Deuteronomy'];
23
+
24
+ /**
25
+ * Formats parsha as a string
26
+ * @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
27
+ * @return {string}
28
+ */
29
+ function parshaToString(parsha) {
30
+ if (typeof parsha === 'string') {
31
+ return parsha;
32
+ } else if (!Array.isArray(parsha) || parsha.length === 0 || parsha.length > 2) {
33
+ throw new TypeError("Bad parsha argument: ".concat(parsha));
34
+ }
35
+ var s = parsha[0];
36
+ if (parsha.length == 2) {
37
+ s += '-' + parsha[1];
38
+ }
39
+ return s;
40
+ }
41
+
42
+ /**
43
+ * Represents an aliyah
44
+ * @typedef {Object} Aliyah
45
+ * @property {string} k - Book (e.g. "Numbers")
46
+ * @property {string} b - beginning verse (e.g. "28:9")
47
+ * @property {string} e - ending verse (e.g. "28:15")
48
+ * @property {number} [v] - number of verses
49
+ * @property {number} [p] - parsha number (1=Bereshit, 54=Vezot HaBracha)
50
+ */
51
+
52
+ /**
53
+ * Makes a deep copy of the src object using JSON stringify and parse
54
+ * @param {any} src
55
+ * @return {any}
56
+ */
57
+ function clone(src) {
58
+ return JSON.parse(JSON.stringify(src));
59
+ }
60
+
61
+ /**
62
+ * Calculates the number of verses in an aliyah or haftara based on
63
+ * the `b` (begin verse), `e` (end verse) and `k` (book).
64
+ * Modifies `aliyah` by setting the `v` field.
65
+ * @param {Aliyah} aliyah
66
+ * @return {number}
67
+ */
68
+ function calculateNumVerses(aliyah) {
69
+ if (aliyah.v) {
70
+ return aliyah.v;
71
+ }
72
+ var chapVerseBegin = aliyah.b.split(':');
73
+ var chapVerseEnd = aliyah.e.split(':');
74
+ var c1 = parseInt(chapVerseBegin[0], 10);
75
+ var c2 = parseInt(chapVerseEnd[0], 10);
76
+ var v1 = parseInt(chapVerseBegin[1], 10);
77
+ var v2 = parseInt(chapVerseEnd[1], 10);
78
+ if (c1 === c2) {
79
+ aliyah.v = v2 - v1 + 1;
80
+ } else if (typeof aliyah.k === 'string') {
81
+ var numv = numverses[aliyah.k];
82
+ if (_typeof(numv) !== 'object' || !numv.length) {
83
+ throw new ReferenceError("Can't find numverses for ".concat(aliyah.k));
84
+ }
85
+ var total = numv[c1] - v1 + 1;
86
+ for (var chap = c1 + 1; chap < c2; chap++) {
87
+ total += numv[chap];
88
+ }
89
+ total += v2;
90
+ aliyah.v = total;
91
+ }
92
+ return aliyah.v;
93
+ }
94
+
95
+ /**
96
+ * Formats an aliyah object like "Numbers 28:9-28:15"
97
+ * @param {Aliyah} a aliyah
98
+ * @return {string}
99
+ */
100
+ function formatAliyahWithBook(a) {
101
+ return "".concat(a.k, " ").concat(a.b, "-").concat(a.e);
102
+ }
103
+
104
+ /**
105
+ * Formats an aliyah object like "Numbers 28:9-15"
106
+ * @param {Aliyah} aliyah
107
+ * @param {boolean} showBook
108
+ * @return {string}
109
+ */
110
+ function formatAliyahShort(aliyah, showBook) {
111
+ var begin = aliyah.b;
112
+ var end0 = aliyah.e;
113
+ var prefix = showBook ? aliyah.k + ' ' : '';
114
+ if (begin === end0) {
115
+ return "".concat(prefix).concat(begin);
116
+ }
117
+ var cv1 = begin.split(':');
118
+ var cv2 = end0.split(':');
119
+ var end = cv1[0] === cv2[0] ? cv2[1] : end0;
120
+ return "".concat(prefix).concat(begin, "-").concat(end);
121
+ }
122
+
123
+ /**
124
+ * Returns the total number of verses in an array of Aliyah (or haftarah) objects
125
+ * @param {Aliyah|Aliyah[]} aliyot
126
+ * @return {number}
127
+ */
128
+ function sumVerses(aliyot) {
129
+ return Array.isArray(aliyot) ? aliyot.reduce(function (prev, cur) {
130
+ return prev + cur.v;
131
+ }, 0) : aliyot.v;
132
+ }
133
+
134
+ /**
135
+ * @private
136
+ * @param {Aliyah|Aliyah[]} haft
137
+ * @return {Aliyah|Aliyah[]}
138
+ */
139
+ function cloneHaftara(haft) {
140
+ if (!haft) {
141
+ return haft;
142
+ }
143
+ var dest = clone(haft);
144
+ if (Array.isArray(dest)) {
145
+ dest.map(calculateNumVerses);
146
+ } else {
147
+ calculateNumVerses(dest);
148
+ }
149
+ return dest;
150
+ }
151
+
152
+ /**
153
+ * @private
154
+ * @param {string} a
155
+ * @param {string} b
156
+ * @return {boolean}
157
+ */
158
+ function isChapVerseBefore(a, b) {
159
+ var cv1 = a.split(':').map(function (x) {
160
+ return +x;
161
+ });
162
+ var cv2 = b.split(':').map(function (x) {
163
+ return +x;
164
+ });
165
+ return cv1[0] * 100 + cv1[1] < cv2[0] * 100 + cv2[1];
166
+ }
167
+
168
+ /**
169
+ * Summarizes an `AliyotMap` by collapsing all adjacent aliyot.
170
+ * Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)
171
+ * @param {Object<string,Aliyah>} aliyot
172
+ * @return {Aliyah[]}
173
+ */
174
+ function makeLeyningParts(aliyot) {
175
+ var nums = Object.keys(aliyot).filter(function (x) {
176
+ return x.length === 1;
177
+ });
178
+ var start = aliyot[nums[0]];
179
+ var end = start;
180
+ var parts = [];
181
+ for (var i = 0; i < nums.length; i++) {
182
+ var num = nums[i];
183
+ var aliyah = aliyot[num];
184
+ if (i === nums.length - 1 && aliyah.k === end.k && aliyah.e === end.e) {
185
+ // short-circuit when final aliyah is within the previous (e.g. M inside of 7)
186
+ continue;
187
+ }
188
+ var prevEndChap = +end.e.split(':')[0];
189
+ var curStartChap = +aliyah.b.split(':')[0];
190
+ var sameOrNextChap = curStartChap === prevEndChap || curStartChap === prevEndChap + 1;
191
+ if (i !== 0 && (aliyah.k !== start.k || isChapVerseBefore(aliyah.b, start.e) || !sameOrNextChap)) {
192
+ parts.push({
193
+ k: start.k,
194
+ b: start.b,
195
+ e: end.e
196
+ });
197
+ start = aliyah;
198
+ }
199
+ end = aliyah;
200
+ }
201
+ parts.push({
202
+ k: start.k,
203
+ b: start.b,
204
+ e: end.e
205
+ });
206
+ return parts;
207
+ }
208
+
209
+ /**
210
+ * Returns a string representation of the leyning parts.
211
+ * Separate verse ranges read from the same book are separated
212
+ * by commas, e.g. `Isaiah 6:1-7:6, 9:5-6`.
213
+ * Verse ranges from different books are separated by semicolons,
214
+ * e.g. `Genesis 21:1-34; Numbers 29:1-6`.
215
+ * @param {Aliyah|Aliyah[]} parts
216
+ * @return {string}
217
+ */
218
+ function makeSummaryFromParts(parts) {
219
+ if (!Array.isArray(parts)) {
220
+ parts = [parts];
221
+ }
222
+ var prev = parts[0];
223
+ var summary = formatAliyahShort(prev, true);
224
+ for (var i = 1; i < parts.length; i++) {
225
+ var part = parts[i];
226
+ if (part.k === prev.k) {
227
+ summary += ', ';
228
+ } else {
229
+ summary += "; ".concat(part.k, " ");
230
+ }
231
+ summary += formatAliyahShort(part, false);
232
+ prev = part;
233
+ }
234
+ return summary;
235
+ }
236
+
237
+ /**
238
+ * Makes a summary of the leyning, like "Genesis 6:9-11:32"
239
+ * @param {Object<string,Aliyah>} aliyot
240
+ * @return {string}
241
+ */
242
+ function makeLeyningSummary(aliyot) {
243
+ var parts = makeLeyningParts(aliyot);
244
+ return makeSummaryFromParts(parts);
245
+ }
246
+
15
247
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
16
248
 
17
249
  var check = function (it) {
@@ -19,7 +251,7 @@ var check = function (it) {
19
251
  };
20
252
 
21
253
  // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
22
- var global$b =
254
+ var global$a =
23
255
  // eslint-disable-next-line es/no-global-this -- safe
24
256
  check(typeof globalThis == 'object' && globalThis) ||
25
257
  check(typeof window == 'object' && window) ||
@@ -31,7 +263,7 @@ var global$b =
31
263
 
32
264
  var objectGetOwnPropertyDescriptor = {};
33
265
 
34
- var fails$9 = function (exec) {
266
+ var fails$8 = function (exec) {
35
267
  try {
36
268
  return !!exec();
37
269
  } catch (error) {
@@ -39,17 +271,17 @@ var fails$9 = function (exec) {
39
271
  }
40
272
  };
41
273
 
42
- var fails$8 = fails$9;
274
+ var fails$7 = fails$8;
43
275
 
44
276
  // Detect IE8's incomplete defineProperty implementation
45
- var descriptors = !fails$8(function () {
277
+ var descriptors = !fails$7(function () {
46
278
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
47
279
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
48
280
  });
49
281
 
50
- var fails$7 = fails$9;
282
+ var fails$6 = fails$8;
51
283
 
52
- var functionBindNative = !fails$7(function () {
284
+ var functionBindNative = !fails$6(function () {
53
285
  // eslint-disable-next-line es/no-function-prototype-bind -- safe
54
286
  var test = (function () { /* empty */ }).bind();
55
287
  // eslint-disable-next-line no-prototype-builtins -- safe
@@ -111,19 +343,19 @@ var classofRaw = function (it) {
111
343
  };
112
344
 
113
345
  var uncurryThis$7 = functionUncurryThis;
114
- var fails$6 = fails$9;
115
- var classof$1 = classofRaw;
346
+ var fails$5 = fails$8;
347
+ var classof = classofRaw;
116
348
 
117
349
  var $Object$2 = Object;
118
350
  var split = uncurryThis$7(''.split);
119
351
 
120
352
  // fallback for non-array-like ES3 and non-enumerable old V8 strings
121
- var indexedObject = fails$6(function () {
353
+ var indexedObject = fails$5(function () {
122
354
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
123
355
  // eslint-disable-next-line no-prototype-builtins -- safe
124
356
  return !$Object$2('z').propertyIsEnumerable(0);
125
357
  }) ? function (it) {
126
- return classof$1(it) == 'String' ? split(it, '') : $Object$2(it);
358
+ return classof(it) == 'String' ? split(it, '') : $Object$2(it);
127
359
  } : $Object$2;
128
360
 
129
361
  // we can't use just `it == null` since of `document.all` special case
@@ -134,21 +366,21 @@ var isNullOrUndefined$2 = function (it) {
134
366
 
135
367
  var isNullOrUndefined$1 = isNullOrUndefined$2;
136
368
 
137
- var $TypeError$6 = TypeError;
369
+ var $TypeError$5 = TypeError;
138
370
 
139
371
  // `RequireObjectCoercible` abstract operation
140
372
  // https://tc39.es/ecma262/#sec-requireobjectcoercible
141
373
  var requireObjectCoercible$2 = function (it) {
142
- if (isNullOrUndefined$1(it)) throw $TypeError$6("Can't call method on " + it);
374
+ if (isNullOrUndefined$1(it)) throw $TypeError$5("Can't call method on " + it);
143
375
  return it;
144
376
  };
145
377
 
146
378
  // toObject with fallback for non-array-like ES3 strings
147
- var IndexedObject$1 = indexedObject;
379
+ var IndexedObject = indexedObject;
148
380
  var requireObjectCoercible$1 = requireObjectCoercible$2;
149
381
 
150
382
  var toIndexedObject$4 = function (it) {
151
- return IndexedObject$1(requireObjectCoercible$1(it));
383
+ return IndexedObject(requireObjectCoercible$1(it));
152
384
  };
153
385
 
154
386
  var documentAll$2 = typeof document == 'object' && document.all;
@@ -184,7 +416,7 @@ var isObject$5 = $documentAll.IS_HTMLDDA ? function (it) {
184
416
  return typeof it == 'object' ? it !== null : isCallable$9(it);
185
417
  };
186
418
 
187
- var global$a = global$b;
419
+ var global$9 = global$a;
188
420
  var isCallable$8 = isCallable$a;
189
421
 
190
422
  var aFunction = function (argument) {
@@ -192,7 +424,7 @@ var aFunction = function (argument) {
192
424
  };
193
425
 
194
426
  var getBuiltIn$3 = function (namespace, method) {
195
- return arguments.length < 2 ? aFunction(global$a[namespace]) : global$a[namespace] && global$a[namespace][method];
427
+ return arguments.length < 2 ? aFunction(global$9[namespace]) : global$9[namespace] && global$9[namespace][method];
196
428
  };
197
429
 
198
430
  var uncurryThis$6 = functionUncurryThis;
@@ -203,11 +435,11 @@ var getBuiltIn$2 = getBuiltIn$3;
203
435
 
204
436
  var engineUserAgent = getBuiltIn$2('navigator', 'userAgent') || '';
205
437
 
206
- var global$9 = global$b;
438
+ var global$8 = global$a;
207
439
  var userAgent = engineUserAgent;
208
440
 
209
- var process = global$9.process;
210
- var Deno = global$9.Deno;
441
+ var process = global$8.process;
442
+ var Deno = global$8.Deno;
211
443
  var versions = process && process.versions || Deno && Deno.version;
212
444
  var v8 = versions && versions.v8;
213
445
  var match, version;
@@ -234,10 +466,10 @@ var engineV8Version = version;
234
466
  /* eslint-disable es/no-symbol -- required for testing */
235
467
 
236
468
  var V8_VERSION = engineV8Version;
237
- var fails$5 = fails$9;
469
+ var fails$4 = fails$8;
238
470
 
239
471
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
240
- var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$5(function () {
472
+ var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$4(function () {
241
473
  var symbol = Symbol();
242
474
  // Chrome 38 Symbol has incorrect toString conversion
243
475
  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
@@ -281,29 +513,29 @@ var tryToString$1 = function (argument) {
281
513
  var isCallable$6 = isCallable$a;
282
514
  var tryToString = tryToString$1;
283
515
 
284
- var $TypeError$5 = TypeError;
516
+ var $TypeError$4 = TypeError;
285
517
 
286
518
  // `Assert: IsCallable(argument) is true`
287
- var aCallable$2 = function (argument) {
519
+ var aCallable$1 = function (argument) {
288
520
  if (isCallable$6(argument)) return argument;
289
- throw $TypeError$5(tryToString(argument) + ' is not a function');
521
+ throw $TypeError$4(tryToString(argument) + ' is not a function');
290
522
  };
291
523
 
292
- var aCallable$1 = aCallable$2;
524
+ var aCallable = aCallable$1;
293
525
  var isNullOrUndefined = isNullOrUndefined$2;
294
526
 
295
527
  // `GetMethod` abstract operation
296
528
  // https://tc39.es/ecma262/#sec-getmethod
297
529
  var getMethod$1 = function (V, P) {
298
530
  var func = V[P];
299
- return isNullOrUndefined(func) ? undefined : aCallable$1(func);
531
+ return isNullOrUndefined(func) ? undefined : aCallable(func);
300
532
  };
301
533
 
302
534
  var call$2 = functionCall;
303
535
  var isCallable$5 = isCallable$a;
304
536
  var isObject$4 = isObject$5;
305
537
 
306
- var $TypeError$4 = TypeError;
538
+ var $TypeError$3 = TypeError;
307
539
 
308
540
  // `OrdinaryToPrimitive` abstract operation
309
541
  // https://tc39.es/ecma262/#sec-ordinarytoprimitive
@@ -312,29 +544,33 @@ var ordinaryToPrimitive$1 = function (input, pref) {
312
544
  if (pref === 'string' && isCallable$5(fn = input.toString) && !isObject$4(val = call$2(fn, input))) return val;
313
545
  if (isCallable$5(fn = input.valueOf) && !isObject$4(val = call$2(fn, input))) return val;
314
546
  if (pref !== 'string' && isCallable$5(fn = input.toString) && !isObject$4(val = call$2(fn, input))) return val;
315
- throw $TypeError$4("Can't convert object to primitive value");
547
+ throw $TypeError$3("Can't convert object to primitive value");
316
548
  };
317
549
 
318
- var shared$3 = {exports: {}};
550
+ var sharedExports = {};
551
+ var shared$3 = {
552
+ get exports(){ return sharedExports; },
553
+ set exports(v){ sharedExports = v; },
554
+ };
319
555
 
320
- var global$8 = global$b;
556
+ var global$7 = global$a;
321
557
 
322
558
  // eslint-disable-next-line es/no-object-defineproperty -- safe
323
559
  var defineProperty$1 = Object.defineProperty;
324
560
 
325
561
  var defineGlobalProperty$3 = function (key, value) {
326
562
  try {
327
- defineProperty$1(global$8, key, { value: value, configurable: true, writable: true });
563
+ defineProperty$1(global$7, key, { value: value, configurable: true, writable: true });
328
564
  } catch (error) {
329
- global$8[key] = value;
565
+ global$7[key] = value;
330
566
  } return value;
331
567
  };
332
568
 
333
- var global$7 = global$b;
569
+ var global$6 = global$a;
334
570
  var defineGlobalProperty$2 = defineGlobalProperty$3;
335
571
 
336
572
  var SHARED = '__core-js_shared__';
337
- var store$3 = global$7[SHARED] || defineGlobalProperty$2(SHARED, {});
573
+ var store$3 = global$6[SHARED] || defineGlobalProperty$2(SHARED, {});
338
574
 
339
575
  var sharedStore = store$3;
340
576
 
@@ -356,12 +592,12 @@ var $Object = Object;
356
592
 
357
593
  // `ToObject` abstract operation
358
594
  // https://tc39.es/ecma262/#sec-toobject
359
- var toObject$2 = function (argument) {
595
+ var toObject$1 = function (argument) {
360
596
  return $Object(requireObjectCoercible(argument));
361
597
  };
362
598
 
363
599
  var uncurryThis$5 = functionUncurryThis;
364
- var toObject$1 = toObject$2;
600
+ var toObject = toObject$1;
365
601
 
366
602
  var hasOwnProperty = uncurryThis$5({}.hasOwnProperty);
367
603
 
@@ -369,7 +605,7 @@ var hasOwnProperty = uncurryThis$5({}.hasOwnProperty);
369
605
  // https://tc39.es/ecma262/#sec-hasownproperty
370
606
  // eslint-disable-next-line es/no-object-hasown -- safe
371
607
  var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
372
- return hasOwnProperty(toObject$1(it), key);
608
+ return hasOwnProperty(toObject(it), key);
373
609
  };
374
610
 
375
611
  var uncurryThis$4 = functionUncurryThis;
@@ -382,15 +618,15 @@ var uid$2 = function (key) {
382
618
  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
383
619
  };
384
620
 
385
- var global$6 = global$b;
386
- var shared$2 = shared$3.exports;
621
+ var global$5 = global$a;
622
+ var shared$2 = sharedExports;
387
623
  var hasOwn$6 = hasOwnProperty_1;
388
624
  var uid$1 = uid$2;
389
625
  var NATIVE_SYMBOL = symbolConstructorDetection;
390
626
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
391
627
 
392
628
  var WellKnownSymbolsStore = shared$2('wks');
393
- var Symbol$1 = global$6.Symbol;
629
+ var Symbol$1 = global$5.Symbol;
394
630
  var symbolFor = Symbol$1 && Symbol$1['for'];
395
631
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;
396
632
 
@@ -414,7 +650,7 @@ var getMethod = getMethod$1;
414
650
  var ordinaryToPrimitive = ordinaryToPrimitive$1;
415
651
  var wellKnownSymbol = wellKnownSymbol$1;
416
652
 
417
- var $TypeError$3 = TypeError;
653
+ var $TypeError$2 = TypeError;
418
654
  var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
419
655
 
420
656
  // `ToPrimitive` abstract operation
@@ -427,7 +663,7 @@ var toPrimitive$1 = function (input, pref) {
427
663
  if (pref === undefined) pref = 'default';
428
664
  result = call$1(exoticToPrim, input, pref);
429
665
  if (!isObject$3(result) || isSymbol$1(result)) return result;
430
- throw $TypeError$3("Can't convert object to primitive value");
666
+ throw $TypeError$2("Can't convert object to primitive value");
431
667
  }
432
668
  if (pref === undefined) pref = 'number';
433
669
  return ordinaryToPrimitive(input, pref);
@@ -443,10 +679,10 @@ var toPropertyKey$2 = function (argument) {
443
679
  return isSymbol(key) ? key : key + '';
444
680
  };
445
681
 
446
- var global$5 = global$b;
682
+ var global$4 = global$a;
447
683
  var isObject$2 = isObject$5;
448
684
 
449
- var document$1 = global$5.document;
685
+ var document$1 = global$4.document;
450
686
  // typeof document.createElement is 'object' in old IE
451
687
  var EXISTS$1 = isObject$2(document$1) && isObject$2(document$1.createElement);
452
688
 
@@ -455,11 +691,11 @@ var documentCreateElement = function (it) {
455
691
  };
456
692
 
457
693
  var DESCRIPTORS$7 = descriptors;
458
- var fails$4 = fails$9;
694
+ var fails$3 = fails$8;
459
695
  var createElement = documentCreateElement;
460
696
 
461
697
  // Thanks to IE8 for its funny defineProperty
462
- var ie8DomDefine = !DESCRIPTORS$7 && !fails$4(function () {
698
+ var ie8DomDefine = !DESCRIPTORS$7 && !fails$3(function () {
463
699
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
464
700
  return Object.defineProperty(createElement('div'), 'a', {
465
701
  get: function () { return 7; }
@@ -492,11 +728,11 @@ objectGetOwnPropertyDescriptor.f = DESCRIPTORS$6 ? $getOwnPropertyDescriptor$1 :
492
728
  var objectDefineProperty = {};
493
729
 
494
730
  var DESCRIPTORS$5 = descriptors;
495
- var fails$3 = fails$9;
731
+ var fails$2 = fails$8;
496
732
 
497
733
  // V8 ~ Chrome 36-
498
734
  // https://bugs.chromium.org/p/v8/issues/detail?id=3334
499
- var v8PrototypeDefineBug = DESCRIPTORS$5 && fails$3(function () {
735
+ var v8PrototypeDefineBug = DESCRIPTORS$5 && fails$2(function () {
500
736
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
501
737
  return Object.defineProperty(function () { /* empty */ }, 'prototype', {
502
738
  value: 42,
@@ -507,12 +743,12 @@ var v8PrototypeDefineBug = DESCRIPTORS$5 && fails$3(function () {
507
743
  var isObject$1 = isObject$5;
508
744
 
509
745
  var $String = String;
510
- var $TypeError$2 = TypeError;
746
+ var $TypeError$1 = TypeError;
511
747
 
512
748
  // `Assert: Type(argument) is Object`
513
749
  var anObject$2 = function (argument) {
514
750
  if (isObject$1(argument)) return argument;
515
- throw $TypeError$2($String(argument) + ' is not an object');
751
+ throw $TypeError$1($String(argument) + ' is not an object');
516
752
  };
517
753
 
518
754
  var DESCRIPTORS$4 = descriptors;
@@ -521,7 +757,7 @@ var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
521
757
  var anObject$1 = anObject$2;
522
758
  var toPropertyKey = toPropertyKey$2;
523
759
 
524
- var $TypeError$1 = TypeError;
760
+ var $TypeError = TypeError;
525
761
  // eslint-disable-next-line es/no-object-defineproperty -- safe
526
762
  var $defineProperty = Object.defineProperty;
527
763
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -554,7 +790,7 @@ objectDefineProperty.f = DESCRIPTORS$4 ? V8_PROTOTYPE_DEFINE_BUG ? function defi
554
790
  if (IE8_DOM_DEFINE) try {
555
791
  return $defineProperty(O, P, Attributes);
556
792
  } catch (error) { /* empty */ }
557
- if ('get' in Attributes || 'set' in Attributes) throw $TypeError$1('Accessors not supported');
793
+ if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');
558
794
  if ('value' in Attributes) O[P] = Attributes.value;
559
795
  return O;
560
796
  };
@@ -570,7 +806,11 @@ var createNonEnumerableProperty$2 = DESCRIPTORS$3 ? function (object, key, value
570
806
  return object;
571
807
  };
572
808
 
573
- var makeBuiltIn$2 = {exports: {}};
809
+ var makeBuiltInExports = {};
810
+ var makeBuiltIn$2 = {
811
+ get exports(){ return makeBuiltInExports; },
812
+ set exports(v){ makeBuiltInExports = v; },
813
+ };
574
814
 
575
815
  var DESCRIPTORS$2 = descriptors;
576
816
  var hasOwn$4 = hasOwnProperty_1;
@@ -605,14 +845,14 @@ if (!isCallable$4(store$1.inspectSource)) {
605
845
 
606
846
  var inspectSource$1 = store$1.inspectSource;
607
847
 
608
- var global$4 = global$b;
848
+ var global$3 = global$a;
609
849
  var isCallable$3 = isCallable$a;
610
850
 
611
- var WeakMap$1 = global$4.WeakMap;
851
+ var WeakMap$1 = global$3.WeakMap;
612
852
 
613
853
  var weakMapBasicDetection = isCallable$3(WeakMap$1) && /native code/.test(String(WeakMap$1));
614
854
 
615
- var shared$1 = shared$3.exports;
855
+ var shared$1 = sharedExports;
616
856
  var uid = uid$2;
617
857
 
618
858
  var keys = shared$1('keys');
@@ -624,7 +864,7 @@ var sharedKey$1 = function (key) {
624
864
  var hiddenKeys$3 = {};
625
865
 
626
866
  var NATIVE_WEAK_MAP = weakMapBasicDetection;
627
- var global$3 = global$b;
867
+ var global$2 = global$a;
628
868
  var isObject = isObject$5;
629
869
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$2;
630
870
  var hasOwn$3 = hasOwnProperty_1;
@@ -633,8 +873,8 @@ var sharedKey = sharedKey$1;
633
873
  var hiddenKeys$2 = hiddenKeys$3;
634
874
 
635
875
  var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
636
- var TypeError$1 = global$3.TypeError;
637
- var WeakMap = global$3.WeakMap;
876
+ var TypeError$1 = global$2.TypeError;
877
+ var WeakMap = global$2.WeakMap;
638
878
  var set, get, has;
639
879
 
640
880
  var enforce = function (it) {
@@ -694,7 +934,7 @@ var internalState = {
694
934
  getterFor: getterFor
695
935
  };
696
936
 
697
- var fails$2 = fails$9;
937
+ var fails$1 = fails$8;
698
938
  var isCallable$2 = isCallable$a;
699
939
  var hasOwn$2 = hasOwnProperty_1;
700
940
  var DESCRIPTORS$1 = descriptors;
@@ -707,7 +947,7 @@ var getInternalState = InternalStateModule.get;
707
947
  // eslint-disable-next-line es/no-object-defineproperty -- safe
708
948
  var defineProperty = Object.defineProperty;
709
949
 
710
- var CONFIGURABLE_LENGTH = DESCRIPTORS$1 && !fails$2(function () {
950
+ var CONFIGURABLE_LENGTH = DESCRIPTORS$1 && !fails$1(function () {
711
951
  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
712
952
  });
713
953
 
@@ -746,7 +986,7 @@ Function.prototype.toString = makeBuiltIn$1(function toString() {
746
986
 
747
987
  var isCallable$1 = isCallable$a;
748
988
  var definePropertyModule$1 = objectDefineProperty;
749
- var makeBuiltIn = makeBuiltIn$2.exports;
989
+ var makeBuiltIn = makeBuiltInExports;
750
990
  var defineGlobalProperty$1 = defineGlobalProperty$3;
751
991
 
752
992
  var defineBuiltIn$1 = function (O, key, value, options) {
@@ -822,19 +1062,19 @@ var toLength = toLength$1;
822
1062
 
823
1063
  // `LengthOfArrayLike` abstract operation
824
1064
  // https://tc39.es/ecma262/#sec-lengthofarraylike
825
- var lengthOfArrayLike$2 = function (obj) {
1065
+ var lengthOfArrayLike$1 = function (obj) {
826
1066
  return toLength(obj.length);
827
1067
  };
828
1068
 
829
1069
  var toIndexedObject$2 = toIndexedObject$4;
830
1070
  var toAbsoluteIndex = toAbsoluteIndex$1;
831
- var lengthOfArrayLike$1 = lengthOfArrayLike$2;
1071
+ var lengthOfArrayLike = lengthOfArrayLike$1;
832
1072
 
833
1073
  // `Array.prototype.{ indexOf, includes }` methods implementation
834
- var createMethod$2 = function (IS_INCLUDES) {
1074
+ var createMethod$1 = function (IS_INCLUDES) {
835
1075
  return function ($this, el, fromIndex) {
836
1076
  var O = toIndexedObject$2($this);
837
- var length = lengthOfArrayLike$1(O);
1077
+ var length = lengthOfArrayLike(O);
838
1078
  var index = toAbsoluteIndex(fromIndex, length);
839
1079
  var value;
840
1080
  // Array#includes uses SameValueZero equality algorithm
@@ -853,10 +1093,10 @@ var createMethod$2 = function (IS_INCLUDES) {
853
1093
  var arrayIncludes = {
854
1094
  // `Array.prototype.includes` method
855
1095
  // https://tc39.es/ecma262/#sec-array.prototype.includes
856
- includes: createMethod$2(true),
1096
+ includes: createMethod$1(true),
857
1097
  // `Array.prototype.indexOf` method
858
1098
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
859
- indexOf: createMethod$2(false)
1099
+ indexOf: createMethod$1(false)
860
1100
  };
861
1101
 
862
1102
  var uncurryThis$2 = functionUncurryThis;
@@ -940,7 +1180,7 @@ var copyConstructorProperties$1 = function (target, source, exceptions) {
940
1180
  }
941
1181
  };
942
1182
 
943
- var fails$1 = fails$9;
1183
+ var fails = fails$8;
944
1184
  var isCallable = isCallable$a;
945
1185
 
946
1186
  var replacement = /#|\.prototype\./;
@@ -949,7 +1189,7 @@ var isForced$1 = function (feature, detection) {
949
1189
  var value = data[normalize(feature)];
950
1190
  return value == POLYFILL ? true
951
1191
  : value == NATIVE ? false
952
- : isCallable(detection) ? fails$1(detection)
1192
+ : isCallable(detection) ? fails(detection)
953
1193
  : !!detection;
954
1194
  };
955
1195
 
@@ -963,7 +1203,7 @@ var POLYFILL = isForced$1.POLYFILL = 'P';
963
1203
 
964
1204
  var isForced_1 = isForced$1;
965
1205
 
966
- var global$2 = global$b;
1206
+ var global$1 = global$a;
967
1207
  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
968
1208
  var createNonEnumerableProperty = createNonEnumerableProperty$2;
969
1209
  var defineBuiltIn = defineBuiltIn$1;
@@ -992,11 +1232,11 @@ var _export = function (options, source) {
992
1232
  var STATIC = options.stat;
993
1233
  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
994
1234
  if (GLOBAL) {
995
- target = global$2;
1235
+ target = global$1;
996
1236
  } else if (STATIC) {
997
- target = global$2[TARGET] || defineGlobalProperty(TARGET, {});
1237
+ target = global$1[TARGET] || defineGlobalProperty(TARGET, {});
998
1238
  } else {
999
- target = (global$2[TARGET] || {}).prototype;
1239
+ target = (global$1[TARGET] || {}).prototype;
1000
1240
  }
1001
1241
  if (target) for (key in source) {
1002
1242
  sourceProperty = source[key];
@@ -1018,320 +1258,15 @@ var _export = function (options, source) {
1018
1258
  }
1019
1259
  };
1020
1260
 
1021
- var aCallable = aCallable$2;
1022
- var toObject = toObject$2;
1023
- var IndexedObject = indexedObject;
1024
- var lengthOfArrayLike = lengthOfArrayLike$2;
1261
+ var internalObjectKeys = objectKeysInternal;
1262
+ var enumBugKeys = enumBugKeys$2;
1025
1263
 
1026
- var $TypeError = TypeError;
1027
-
1028
- // `Array.prototype.{ reduce, reduceRight }` methods implementation
1029
- var createMethod$1 = function (IS_RIGHT) {
1030
- return function (that, callbackfn, argumentsLength, memo) {
1031
- aCallable(callbackfn);
1032
- var O = toObject(that);
1033
- var self = IndexedObject(O);
1034
- var length = lengthOfArrayLike(O);
1035
- var index = IS_RIGHT ? length - 1 : 0;
1036
- var i = IS_RIGHT ? -1 : 1;
1037
- if (argumentsLength < 2) while (true) {
1038
- if (index in self) {
1039
- memo = self[index];
1040
- index += i;
1041
- break;
1042
- }
1043
- index += i;
1044
- if (IS_RIGHT ? index < 0 : length <= index) {
1045
- throw $TypeError('Reduce of empty array with no initial value');
1046
- }
1047
- }
1048
- for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
1049
- memo = callbackfn(memo, self[index], index, O);
1050
- }
1051
- return memo;
1052
- };
1053
- };
1054
-
1055
- var arrayReduce = {
1056
- // `Array.prototype.reduce` method
1057
- // https://tc39.es/ecma262/#sec-array.prototype.reduce
1058
- left: createMethod$1(false),
1059
- // `Array.prototype.reduceRight` method
1060
- // https://tc39.es/ecma262/#sec-array.prototype.reduceright
1061
- right: createMethod$1(true)
1062
- };
1063
-
1064
- var fails = fails$9;
1065
-
1066
- var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
1067
- var method = [][METHOD_NAME];
1068
- return !!method && fails(function () {
1069
- // eslint-disable-next-line no-useless-call -- required for testing
1070
- method.call(null, argument || function () { return 1; }, 1);
1071
- });
1072
- };
1073
-
1074
- var classof = classofRaw;
1075
- var global$1 = global$b;
1076
-
1077
- var engineIsNode = classof(global$1.process) == 'process';
1078
-
1079
- var $$1 = _export;
1080
- var $reduce = arrayReduce.left;
1081
- var arrayMethodIsStrict = arrayMethodIsStrict$1;
1082
- var CHROME_VERSION = engineV8Version;
1083
- var IS_NODE = engineIsNode;
1084
-
1085
- var STRICT_METHOD = arrayMethodIsStrict('reduce');
1086
- // Chrome 80-82 has a critical bug
1087
- // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
1088
- var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;
1089
-
1090
- // `Array.prototype.reduce` method
1091
- // https://tc39.es/ecma262/#sec-array.prototype.reduce
1092
- $$1({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {
1093
- reduce: function reduce(callbackfn /* , initialValue */) {
1094
- var length = arguments.length;
1095
- return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);
1096
- }
1097
- });
1098
-
1099
- var Genesis=[0,31,25,24,26,32,22,24,22,29,32,32,20,18,24,21,16,27,33,38,18,34,24,20,67,34,35,46,22,35,43,54,33,20,31,29,43,36,30,23,23,57,38,34,34,28,34,31,22,33,26];var Exodus=[0,22,25,22,31,23,30,29,28,35,29,10,51,22,31,27,36,16,27,25,26,37,30,33,18,40,37,21,43,46,38,18,35,23,35,35,38,29,31,43,38];var Leviticus=[0,17,16,17,35,26,23,38,36,24,20,47,8,59,57,33,34,16,30,37,27,24,33,44,23,55,46,34];var Numbers=[0,54,34,51,49,31,27,89,26,23,36,35,16,33,45,41,35,28,32,22,29,35,41,30,25,19,65,23,31,39,17,54,42,56,29,34,13];var Deuteronomy=[0,46,37,29,49,30,25,26,20,29,22,32,31,19,29,23,22,20,22,21,20,23,29,26,22,19,19,26,69,28,20,30,52,29,12];var Joshua=[0,18,24,17,24,15,27,26,35,27,43,23,24,33,15,63,10,18,28,51,9,45,34,16,33];var Judges=[0,36,23,31,24,31,40,25,35,57,18,40,15,25,20,20,31,13,31,30,48,25];var Ruth=[0,22,23,18,22];var Isaiah=[0,31,22,26,6,30,13,25,23,20,34,16,6,22,32,9,14,14,7,25,6,17,25,18,23,12,21,13,29,24,33,9,20,24,17,10,22,38,22,8,31,29,25,28,28,25,13,15,22,26,11,23,15,12,17,13,12,21,14,21,22,11,12,19,11,25,24];var Jeremiah=[0,19,37,25,31,31,30,34,23,25,25,23,17,27,22,21,21,27,23,15,18,14,30,40,10,38,24,22,17,32,24,40,44,26,22,19,32,21,28,18,16,18,22,13,30,5,28,7,47,39,46,64,34];var Lamentations=[0,22,22,66,22,22];var Baruch=[0,22,35,38,37,9,72];var Ezekiel=[0,28,10,27,17,17,14,27,18,11,22,25,28,23,23,8,63,24,32,14,44,37,31,49,27,17,21,36,26,21,26,18,32,33,31,15,38,28,23,29,49,26,20,27,31,25,24,23,35];var Daniel=[0,21,49,100,34,30,29,28,27,27,21,45,13,64,42];var Hosea=[0,9,25,5,19,15,11,16,14,17,15,11,15,15,10];var Joel=[0,20,27,5,21];var Amos=[0,15,16,15,13,27,14,17,14,15];var Obadiah=[0,21];var Jonah=[0,16,11,10,11];var Micah=[0,16,13,12,14,14,16,20];var Nachum=[0,14,14,19];var Habakkuk=[0,17,20,19];var Zephaniah=[0,18,15,20];var Haggai=[0,15,23];var Zechariah=[0,17,17,10,14,11,15,14,23,17,12,17,14,9,21];var Malachi=[0,14,17,24];var numverses = {Genesis:Genesis,Exodus:Exodus,Leviticus:Leviticus,Numbers:Numbers,Deuteronomy:Deuteronomy,Joshua:Joshua,Judges:Judges,Ruth:Ruth,"I Samuel":[0,28,36,21,22,12,21,17,22,27,27,15,25,23,52,35,23,58,30,24,42,16,23,28,23,43,25,12,25,11,31,13],"II Samuel":[0,27,32,39,12,25,23,29,18,13,19,27,31,39,33,37,23,29,32,44,26,22,51,39,25],"I Kings":[0,53,46,28,20,32,38,51,66,28,29,43,33,34,31,34,34,24,46,21,43,29,54],"II Kings":[0,18,25,27,44,27,33,20,29,37,36,20,22,25,29,38,20,41,37,37,21,26,20,37,20,30],Isaiah:Isaiah,Jeremiah:Jeremiah,Lamentations:Lamentations,Baruch:Baruch,Ezekiel:Ezekiel,Daniel:Daniel,Hosea:Hosea,Joel:Joel,Amos:Amos,Obadiah:Obadiah,Jonah:Jonah,Micah:Micah,Nachum:Nachum,Habakkuk:Habakkuk,Zephaniah:Zephaniah,Haggai:Haggai,Zechariah:Zechariah,Malachi:Malachi};
1100
-
1101
- /**
1102
- * Names of the books of the Torah. BOOK[1] === 'Genesis'
1103
- * @readonly
1104
- * @const {string[]}
1105
- */
1106
- var BOOK = ['', 'Genesis', 'Exodus', 'Leviticus', 'Numbers', 'Deuteronomy'];
1107
-
1108
- /**
1109
- * Formats parsha as a string
1110
- * @param {string[]} parsha
1111
- * @return {string}
1112
- */
1113
- function parshaToString(parsha) {
1114
- var s = parsha[0];
1115
- if (parsha.length == 2) {
1116
- s += '-' + parsha[1];
1117
- }
1118
- return s;
1119
- }
1120
-
1121
- /**
1122
- * Represents an aliyah
1123
- * @typedef {Object} Aliyah
1124
- * @property {string} k - Book (e.g. "Numbers")
1125
- * @property {string} b - beginning verse (e.g. "28:9")
1126
- * @property {string} e - ending verse (e.g. "28:15")
1127
- * @property {number} [v] - number of verses
1128
- * @property {number} [p] - parsha number (1=Bereshit, 54=Vezot HaBracha)
1129
- */
1130
-
1131
- /**
1132
- * Makes a deep copy of the src object using JSON stringify and parse
1133
- * @param {any} src
1134
- * @return {any}
1135
- */
1136
- function clone(src) {
1137
- return JSON.parse(JSON.stringify(src));
1138
- }
1139
-
1140
- /**
1141
- * Calculates the number of verses in an aliyah or haftara based on
1142
- * the `b` (begin verse), `e` (end verse) and `k` (book).
1143
- * Modifies `aliyah` by setting the `v` field.
1144
- * @param {Aliyah} aliyah
1145
- * @return {number}
1146
- */
1147
- function calculateNumVerses(aliyah) {
1148
- if (aliyah.v) {
1149
- return aliyah.v;
1150
- }
1151
- var chapVerseBegin = aliyah.b.split(':');
1152
- var chapVerseEnd = aliyah.e.split(':');
1153
- var c1 = parseInt(chapVerseBegin[0], 10);
1154
- var c2 = parseInt(chapVerseEnd[0], 10);
1155
- var v1 = parseInt(chapVerseBegin[1], 10);
1156
- var v2 = parseInt(chapVerseEnd[1], 10);
1157
- if (c1 === c2) {
1158
- aliyah.v = v2 - v1 + 1;
1159
- } else if (typeof aliyah.k === 'string') {
1160
- var numv = numverses[aliyah.k];
1161
- if (_typeof(numv) !== 'object' || !numv.length) {
1162
- throw new ReferenceError("Can't find numverses for ".concat(aliyah.k));
1163
- }
1164
- var total = numv[c1] - v1 + 1;
1165
- for (var chap = c1 + 1; chap < c2; chap++) {
1166
- total += numv[chap];
1167
- }
1168
- total += v2;
1169
- aliyah.v = total;
1170
- }
1171
- return aliyah.v;
1172
- }
1173
-
1174
- /**
1175
- * Formats an aliyah object like "Numbers 28:9-28:15"
1176
- * @param {Aliyah} a aliyah
1177
- * @return {string}
1178
- */
1179
- function formatAliyahWithBook(a) {
1180
- return "".concat(a.k, " ").concat(a.b, "-").concat(a.e);
1181
- }
1182
-
1183
- /**
1184
- * Formats an aliyah object like "Numbers 28:9-15"
1185
- * @param {Aliyah} aliyah
1186
- * @param {boolean} showBook
1187
- * @return {string}
1188
- */
1189
- function formatAliyahShort(aliyah, showBook) {
1190
- var begin = aliyah.b;
1191
- var end0 = aliyah.e;
1192
- var prefix = showBook ? aliyah.k + ' ' : '';
1193
- if (begin === end0) {
1194
- return "".concat(prefix).concat(begin);
1195
- }
1196
- var cv1 = begin.split(':');
1197
- var cv2 = end0.split(':');
1198
- var end = cv1[0] === cv2[0] ? cv2[1] : end0;
1199
- return "".concat(prefix).concat(begin, "-").concat(end);
1200
- }
1201
-
1202
- /**
1203
- * Returns the total number of verses in an array of Aliyah (or haftarah) objects
1204
- * @param {Aliyah|Aliyah[]} aliyot
1205
- * @return {number}
1206
- */
1207
- function sumVerses(aliyot) {
1208
- return Array.isArray(aliyot) ? aliyot.reduce(function (prev, cur) {
1209
- return prev + cur.v;
1210
- }, 0) : aliyot.v;
1211
- }
1212
-
1213
- /**
1214
- * @private
1215
- * @param {Aliyah|Aliyah[]} haft
1216
- * @return {Aliyah|Aliyah[]}
1217
- */
1218
- function cloneHaftara(haft) {
1219
- if (!haft) {
1220
- return haft;
1221
- }
1222
- var dest = clone(haft);
1223
- if (Array.isArray(dest)) {
1224
- dest.map(calculateNumVerses);
1225
- } else {
1226
- calculateNumVerses(dest);
1227
- }
1228
- return dest;
1229
- }
1230
-
1231
- /**
1232
- * @private
1233
- * @param {string} a
1234
- * @param {string} b
1235
- * @return {boolean}
1236
- */
1237
- function isChapVerseBefore(a, b) {
1238
- var cv1 = a.split(':').map(function (x) {
1239
- return +x;
1240
- });
1241
- var cv2 = b.split(':').map(function (x) {
1242
- return +x;
1243
- });
1244
- return cv1[0] * 100 + cv1[1] < cv2[0] * 100 + cv2[1];
1245
- }
1246
-
1247
- /**
1248
- * Summarizes an `AliyotMap` by collapsing all adjacent aliyot.
1249
- * Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)
1250
- * @param {Object<string,Aliyah>} aliyot
1251
- * @return {Aliyah[]}
1252
- */
1253
- function makeLeyningParts(aliyot) {
1254
- var nums = Object.keys(aliyot).filter(function (x) {
1255
- return x.length === 1;
1256
- });
1257
- var start = aliyot[nums[0]];
1258
- var end = start;
1259
- var parts = [];
1260
- for (var i = 0; i < nums.length; i++) {
1261
- var num = nums[i];
1262
- var aliyah = aliyot[num];
1263
- if (i === nums.length - 1 && aliyah.k === end.k && aliyah.e === end.e) {
1264
- // short-circuit when final aliyah is within the previous (e.g. M inside of 7)
1265
- continue;
1266
- }
1267
- var prevEndChap = +end.e.split(':')[0];
1268
- var curStartChap = +aliyah.b.split(':')[0];
1269
- var sameOrNextChap = curStartChap === prevEndChap || curStartChap === prevEndChap + 1;
1270
- if (i !== 0 && (aliyah.k !== start.k || isChapVerseBefore(aliyah.b, start.e) || !sameOrNextChap)) {
1271
- parts.push({
1272
- k: start.k,
1273
- b: start.b,
1274
- e: end.e
1275
- });
1276
- start = aliyah;
1277
- }
1278
- end = aliyah;
1279
- }
1280
- parts.push({
1281
- k: start.k,
1282
- b: start.b,
1283
- e: end.e
1284
- });
1285
- return parts;
1286
- }
1287
-
1288
- /**
1289
- * Returns a string representation of the leyning parts.
1290
- * Separate verse ranges read from the same book are separated
1291
- * by commas, e.g. `Isaiah 6:1-7:6, 9:5-6`.
1292
- * Verse ranges from different books are separated by semicolons,
1293
- * e.g. `Genesis 21:1-34; Numbers 29:1-6`.
1294
- * @param {Aliyah|Aliyah[]} parts
1295
- * @return {string}
1296
- */
1297
- function makeSummaryFromParts(parts) {
1298
- if (!Array.isArray(parts)) {
1299
- parts = [parts];
1300
- }
1301
- var prev = parts[0];
1302
- var summary = formatAliyahShort(prev, true);
1303
- for (var i = 1; i < parts.length; i++) {
1304
- var part = parts[i];
1305
- if (part.k === prev.k) {
1306
- summary += ', ';
1307
- } else {
1308
- summary += "; ".concat(part.k, " ");
1309
- }
1310
- summary += formatAliyahShort(part, false);
1311
- prev = part;
1312
- }
1313
- return summary;
1314
- }
1315
-
1316
- /**
1317
- * Makes a summary of the leyning, like "Genesis 6:9-11:32"
1318
- * @param {Object<string,Aliyah>} aliyot
1319
- * @return {string}
1320
- */
1321
- function makeLeyningSummary(aliyot) {
1322
- var parts = makeLeyningParts(aliyot);
1323
- return makeSummaryFromParts(parts);
1324
- }
1325
-
1326
- var internalObjectKeys = objectKeysInternal;
1327
- var enumBugKeys = enumBugKeys$2;
1328
-
1329
- // `Object.keys` method
1330
- // https://tc39.es/ecma262/#sec-object.keys
1331
- // eslint-disable-next-line es/no-object-keys -- safe
1332
- var objectKeys$1 = Object.keys || function keys(O) {
1333
- return internalObjectKeys(O, enumBugKeys);
1334
- };
1264
+ // `Object.keys` method
1265
+ // https://tc39.es/ecma262/#sec-object.keys
1266
+ // eslint-disable-next-line es/no-object-keys -- safe
1267
+ var objectKeys$1 = Object.keys || function keys(O) {
1268
+ return internalObjectKeys(O, enumBugKeys);
1269
+ };
1335
1270
 
1336
1271
  var DESCRIPTORS = descriptors;
1337
1272
  var uncurryThis = functionUncurryThis;
@@ -1430,6 +1365,9 @@ var HOLIDAY_IGNORE_MASK = core.flags.DAF_YOMI | core.flags.OMER_COUNT | core.fla
1430
1365
  */
1431
1366
  function getLeyningKeyForEvent(ev) {
1432
1367
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1368
+ if (typeof ev.eventTime !== 'undefined') {
1369
+ return undefined;
1370
+ }
1433
1371
  var mask = ev.getFlags();
1434
1372
  if (mask & HOLIDAY_IGNORE_MASK) {
1435
1373
  return undefined;
@@ -1492,6 +1430,9 @@ function getLeyningKeyForEvent(ev) {
1492
1430
  } else if (il && desc == 'Shmini Atzeret') {
1493
1431
  return 'Simchat Torah';
1494
1432
  }
1433
+ if (desc === 'Chag HaBanot') {
1434
+ return undefined;
1435
+ }
1495
1436
  if (isShabbat && 'Shabbat' != desc.substring(0, 7)) {
1496
1437
  if (isRoshChodesh) {
1497
1438
  if (desc === 'Rosh Chodesh Tevet') {
@@ -1536,6 +1477,16 @@ function getLeyningKeyForEvent(ev) {
1536
1477
  return undefined;
1537
1478
  }
1538
1479
 
1480
+ /**
1481
+ * Leyning for a parsha hashavua or holiday
1482
+ * @typedef {Object} SpecialReading
1483
+ * @property {Object<string,Aliyah>} aliyot - Map of aliyot `1` through `7` plus `M` for maftir
1484
+ * @property {Object<string,string>} [reason] - Explanations for special readings,
1485
+ * keyed by aliyah number, `M` for maftir or `haftara` for Haftarah
1486
+ * @property {Aliyah|Aliyah[]} haft - Haftarah object(s)
1487
+ * @property {Aliyah|Aliyah[]} seph - Haftarah object(s)
1488
+ */
1489
+
1539
1490
  /**
1540
1491
  * @private
1541
1492
  * @param {Object<string,Aliyah>} aliyot
@@ -1579,25 +1530,23 @@ function mergeAliyotWithSpecial(aliyot, special) {
1579
1530
  * a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh
1580
1531
  * Chodesh or Machar Chodesh, etc.).
1581
1532
  *
1582
- * If a special maftir occurs, modifies `aliyot` to replace `M` and sets `reason.M`
1583
- * (and in some cases modifies the 6th and 7th aliyah, setting `reason['7']`).
1533
+ * This function does not modify `aliyot`. Instead, it returns a deep copy
1534
+ * with `aliyot['M']` replaced and sets `reason.M`
1535
+ * (and in some cases the 6th and 7th aliyah, setting `reason['7']`).
1584
1536
  *
1585
- * If a special Haftarah applies, returns the Haftarah object and sets `reason.haftara`.
1586
- * If no special Haftarah, returns `undefined`
1537
+ * If a special Haftarah applies, the result will have a `haft` property
1538
+ * pointing to Haftarah object and sets `reason.haftara`.
1539
+ * @param {string[]} parsha
1587
1540
  * @param {HDate} hd
1588
1541
  * @param {boolean} il
1589
1542
  * @param {Object<string,Aliyah>} aliyot
1590
- * @param {Object<string,string>} reason
1591
- * @param {string[]} parsha
1592
- * @param {boolean} [wantSeph]
1593
- * @return {Aliyah | Aliyah[]}
1543
+ * @return {SpecialReading}
1594
1544
  */
1595
- function specialReadings(hd, il, aliyot, reason, parsha) {
1596
- var wantSeph = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
1545
+ function specialReadings2(parsha, hd, il, aliyot) {
1597
1546
  var haft;
1598
1547
  var seph;
1599
1548
  var specialHaft = false;
1600
- var parshaName = parsha ? parshaToString(parsha) : null;
1549
+ var reason = {};
1601
1550
 
1602
1551
  // eslint-disable-next-line require-jsdoc
1603
1552
  function handleSpecial(key) {
@@ -1615,18 +1564,21 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1615
1564
  }
1616
1565
  }
1617
1566
  if (special.fullkriyah) {
1618
- mergeAliyotWithSpecial(aliyot, special.fullkriyah);
1567
+ var aliyotMap = clone(aliyot);
1568
+ mergeAliyotWithSpecial(aliyotMap, special.fullkriyah);
1619
1569
  Object.keys(special.fullkriyah).map(function (k) {
1620
1570
  return reason[k] = key;
1621
1571
  });
1572
+ aliyot = aliyotMap;
1622
1573
  }
1623
1574
  }
1575
+ var parshaName = parshaToString(parsha);
1624
1576
  var events0 = core.HebrewCalendar.getHolidaysOnDate(hd, il) || [];
1625
1577
  var events = events0.filter(function (ev) {
1626
1578
  return !(ev.getFlags() & core.flags.ROSH_CHODESH);
1627
1579
  });
1628
1580
  events.forEach(function (ev) {
1629
- if (ev.getDesc() === 'Shabbat Shuva' && parshaName) {
1581
+ if (ev.getDesc() === 'Shabbat Shuva') {
1630
1582
  handleSpecial("Shabbat Shuva (with ".concat(parshaName, ")"));
1631
1583
  } else {
1632
1584
  var key = getLeyningKeyForEvent(ev, il);
@@ -1651,14 +1603,12 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1651
1603
  }
1652
1604
  }
1653
1605
  }
1654
- if (wantSeph && haft) {
1655
- return {
1656
- haft: haft,
1657
- seph: seph
1658
- };
1659
- } else {
1660
- return haft;
1661
- }
1606
+ return {
1607
+ aliyot: aliyot,
1608
+ reason: reason,
1609
+ haft: haft,
1610
+ seph: seph
1611
+ };
1662
1612
  }
1663
1613
 
1664
1614
  var Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:"42:5",e:"43:10"},seph:{k:"Isaiah",b:"42:5",e:"42:21"},fullkriyah:{"1":["1:1","2:3"],"2":["2:4","2:19"],"3":["2:20","3:21"],"4":["3:22","4:18"],"5":["4:19","4:22"],"6":["4:23","5:24"],"7":["5:25","6:8"],M:["6:5","6:8"]},weekday:{"1":["1:1","1:5"],"2":["1:6","1:8"],"3":["1:9","1:13"]}};var Noach={num:2,hebrew:"נֹחַ",book:1,haft:{k:"Isaiah",b:"54:1",e:"55:5"},seph:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["6:9","6:22"],"2":["7:1","7:16"],"3":["7:17","8:14"],"4":["8:15","9:7"],"5":["9:8","9:17"],"6":["9:18","10:32"],"7":["11:1","11:32"],M:["11:29","11:32"]},weekday:{"1":["6:9","6:16"],"2":["6:17","6:19"],"3":["6:20","6:22"]}};var Vayera={num:4,hebrew:"וַיֵּרָא",book:1,haft:{k:"II Kings",b:"4:1",e:"4:37"},seph:{k:"II Kings",b:"4:1",e:"4:23"},fullkriyah:{"1":["18:1","18:14"],"2":["18:15","18:33"],"3":["19:1","19:20"],"4":["19:21","21:4"],"5":["21:5","21:21"],"6":["21:22","21:34"],"7":["22:1","22:24"],M:["22:20","22:24"]},weekday:{"1":["18:1","18:5"],"2":["18:6","18:8"],"3":["18:9","18:14"]}};var Toldot={num:6,hebrew:"תּוֹלְדוֹת",book:1,haft:{k:"Malachi",b:"1:1",e:"2:7"},fullkriyah:{"1":["25:19","26:5"],"2":["26:6","26:12"],"3":["26:13","26:22"],"4":["26:23","26:29"],"5":["26:30","27:27"],"6":["27:28","28:4"],"7":["28:5","28:9"],M:["28:7","28:9"]},weekday:{"1":["25:19","25:22"],"2":["25:23","25:26"],"3":["25:27","26:5"]}};var Vayetzei={num:7,hebrew:"וַיֵּצֵא",book:1,haft:{k:"Hosea",b:"12:13",e:"14:10"},seph:{k:"Hosea",b:"11:7",e:"12:12"},fullkriyah:{"1":["28:10","28:22"],"2":["29:1","29:17"],"3":["29:18","30:13"],"4":["30:14","30:27"],"5":["30:28","31:16"],"6":["31:17","31:42"],"7":["31:43","32:3"],M:["32:1","32:3"]},weekday:{"1":["28:10","28:12"],"2":["28:13","28:17"],"3":["28:18","28:22"]}};var Vayishlach={num:8,hebrew:"וַיִּשְׁלַח",book:1,haft:{k:"Obadiah",b:"1:1",e:"1:21"},fullkriyah:{"1":["32:4","32:13"],"2":["32:14","32:30"],"3":["32:31","33:5"],"4":["33:6","33:20"],"5":["34:1","35:11"],"6":["35:12","36:19"],"7":["36:20","36:43"],M:["36:40","36:43"]},weekday:{"1":["32:4","32:6"],"2":["32:7","32:9"],"3":["32:10","32:13"]}};var Vayeshev={num:9,hebrew:"וַיֵּשֶׁב",book:1,haft:{k:"Amos",b:"2:6",e:"3:8"},fullkriyah:{"1":["37:1","37:11"],"2":["37:12","37:22"],"3":["37:23","37:36"],"4":["38:1","38:30"],"5":["39:1","39:6"],"6":["39:7","39:23"],"7":["40:1","40:23"],M:["40:20","40:23"]},weekday:{"1":["37:1","37:3"],"2":["37:4","37:7"],"3":["37:8","37:11"]}};var Miketz={num:10,hebrew:"מִקֵּץ",book:1,haft:{k:"I Kings",b:"3:15",e:"4:1"},fullkriyah:{"1":["41:1","41:14"],"2":["41:15","41:38"],"3":["41:39","41:52"],"4":["41:53","42:18"],"5":["42:19","43:15"],"6":["43:16","43:29"],"7":["43:30","44:17"],M:["44:14","44:17"]},weekday:{"1":["41:1","41:4"],"2":["41:5","41:7"],"3":["41:8","41:14"]}};var Vayigash={num:11,hebrew:"וַיִּגַּשׁ",book:1,haft:{k:"Ezekiel",b:"37:15",e:"37:28"},fullkriyah:{"1":["44:18","44:30"],"2":["44:31","45:7"],"3":["45:8","45:18"],"4":["45:19","45:27"],"5":["45:28","46:27"],"6":["46:28","47:10"],"7":["47:11","47:27"],M:["47:25","47:27"]},weekday:{"1":["44:18","44:20"],"2":["44:21","44:24"],"3":["44:25","44:30"]}};var Vayechi={num:12,hebrew:"וַיְחִי",book:1,haft:{k:"I Kings",b:"2:1",e:"2:12"},fullkriyah:{"1":["47:28","48:9"],"2":["48:10","48:16"],"3":["48:17","48:22"],"4":["49:1","49:18"],"5":["49:19","49:26"],"6":["49:27","50:20"],"7":["50:21","50:26"],M:["50:23","50:26"]},weekday:{"1":["47:28","47:31"],"2":["48:1","48:3"],"3":["48:4","48:9"]}};var Shemot={num:13,hebrew:"שְׁמוֹת",book:2,haft:[{k:"Isaiah",b:"27:6",e:"28:13"},{k:"Isaiah",b:"29:22",e:"29:23"}],seph:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["1:1","1:17"],"2":["1:18","2:10"],"3":["2:11","2:25"],"4":["3:1","3:15"],"5":["3:16","4:17"],"6":["4:18","4:31"],"7":["5:1","6:1"],M:["5:22","6:1"]},weekday:{"1":["1:1","1:7"],"2":["1:8","1:12"],"3":["1:13","1:17"]}};var Vaera={num:14,hebrew:"וָאֵרָא",book:2,haft:{k:"Ezekiel",b:"28:25",e:"29:21"},fullkriyah:{"1":["6:2","6:13"],"2":["6:14","6:28"],"3":["6:29","7:7"],"4":["7:8","8:6"],"5":["8:7","8:18"],"6":["8:19","9:16"],"7":["9:17","9:35"],M:["9:33","9:35"]},weekday:{"1":["6:2","6:5"],"2":["6:6","6:9"],"3":["6:10","6:13"]}};var Bo={num:15,hebrew:"בֹּא",book:2,haft:{k:"Jeremiah",b:"46:13",e:"46:28"},fullkriyah:{"1":["10:1","10:11"],"2":["10:12","10:23"],"3":["10:24","11:3"],"4":["11:4","12:20"],"5":["12:21","12:28"],"6":["12:29","12:51"],"7":["13:1","13:16"],M:["13:14","13:16"]},weekday:{"1":["10:1","10:3"],"2":["10:4","10:6"],"3":["10:7","10:11"]}};var Beshalach={num:16,hebrew:"בְּשַׁלַּח",book:2,haft:{k:"Judges",b:"4:4",e:"5:31"},seph:{k:"Judges",b:"5:1",e:"5:31"},fullkriyah:{"1":["13:17","14:8"],"2":["14:9","14:14"],"3":["14:15","14:25"],"4":["14:26","15:26"],"5":["15:27","16:10"],"6":["16:11","16:36"],"7":["17:1","17:16"],M:["17:14","17:16"]},weekday:{"1":["13:17","13:22"],"2":["14:1","14:4"],"3":["14:5","14:8"]}};var Yitro={num:17,hebrew:"יִתְרוֹ",book:2,haft:[{k:"Isaiah",b:"6:1",e:"7:6"},{k:"Isaiah",b:"9:5",e:"9:6"}],seph:{k:"Isaiah",b:"6:1",e:"6:13"},fullkriyah:{"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"]},weekday:{"1":["18:1","18:4"],"2":["18:5","18:8"],"3":["18:9","18:12"]}};var Mishpatim={num:18,hebrew:"מִּשְׁפָּטִים",book:2,haft:[{k:"Jeremiah",b:"34:8",e:"34:22"},{k:"Jeremiah",b:"33:25",e:"33:26"}],fullkriyah:{"1":["21:1","21:19"],"2":["21:20","22:3"],"3":["22:4","22:26"],"4":["22:27","23:5"],"5":["23:6","23:19"],"6":["23:20","23:25"],"7":["23:26","24:18"],M:["24:15","24:18"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:11"],"3":["21:12","21:19"]}};var Terumah={num:19,hebrew:"תְּרוּמָה",book:2,haft:{k:"I Kings",b:"5:26",e:"6:13"},fullkriyah:{"1":["25:1","25:16"],"2":["25:17","25:30"],"3":["25:31","26:14"],"4":["26:15","26:30"],"5":["26:31","26:37"],"6":["27:1","27:8"],"7":["27:9","27:19"],M:["27:17","27:19"]},weekday:{"1":["25:1","25:5"],"2":["25:6","25:9"],"3":["25:10","25:16"]}};var Tetzaveh={num:20,hebrew:"תְּצַוֶּה",book:2,haft:{k:"Ezekiel",b:"43:10",e:"43:27"},fullkriyah:{"1":["27:20","28:12"],"2":["28:13","28:30"],"3":["28:31","28:43"],"4":["29:1","29:18"],"5":["29:19","29:37"],"6":["29:38","29:46"],"7":["30:1","30:10"],M:["30:8","30:10"]},weekday:{"1":["27:20","28:5"],"2":["28:6","28:9"],"3":["28:10","28:12"]}};var Vayakhel={num:22,hebrew:"וַיַּקְהֵל",book:2,haft:{k:"I Kings",b:"7:40",e:"7:50"},seph:{k:"I Kings",b:"7:13",e:"7:26"},fullkriyah:{"1":["35:1","35:20"],"2":["35:21","35:29"],"3":["35:30","36:7"],"4":["36:8","36:19"],"5":["36:20","37:16"],"6":["37:17","37:29"],"7":["38:1","38:20"],M:["38:18","38:20"]},weekday:{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"]}};var Pekudei={num:23,hebrew:"פְקוּדֵי",book:2,haft:{k:"I Kings",b:"7:51",e:"8:21"},seph:{k:"I Kings",b:"7:40",e:"7:50"},fullkriyah:{"1":["38:21","39:1"],"2":["39:2","39:21"],"3":["39:22","39:32"],"4":["39:33","39:43"],"5":["40:1","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]},weekday:{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"]}};var Vayikra={num:24,hebrew:"וַיִּקְרָא",book:3,haft:{k:"Isaiah",b:"43:21",e:"44:23"},fullkriyah:{"1":["1:1","1:13"],"2":["1:14","2:6"],"3":["2:7","2:16"],"4":["3:1","3:17"],"5":["4:1","4:26"],"6":["4:27","5:10"],"7":["5:11","5:26"],M:["5:24","5:26"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:9"],"3":["1:10","1:13"]}};var Tzav={num:25,hebrew:"צַו",book:3,haft:[{k:"Jeremiah",b:"7:21",e:"8:3"},{k:"Jeremiah",b:"9:22",e:"9:23"}],fullkriyah:{"1":["6:1","6:11"],"2":["6:12","7:10"],"3":["7:11","7:38"],"4":["8:1","8:13"],"5":["8:14","8:21"],"6":["8:22","8:29"],"7":["8:30","8:36"],M:["8:33","8:36"]},weekday:{"1":["6:1","6:3"],"2":["6:4","6:6"],"3":["6:7","6:11"]}};var Shmini={num:26,hebrew:"שְּׁמִינִי",book:3,haft:{k:"II Samuel",b:"6:1",e:"7:17"},seph:{k:"II Samuel",b:"6:1",e:"6:19"},fullkriyah:{"1":["9:1","9:16"],"2":["9:17","9:23"],"3":["9:24","10:11"],"4":["10:12","10:15"],"5":["10:16","10:20"],"6":["11:1","11:32"],"7":["11:33","11:47"],M:["11:45","11:47"]},weekday:{"1":["9:1","9:6"],"2":["9:7","9:10"],"3":["9:11","9:16"]}};var Tazria={num:27,hebrew:"תַזְרִיעַ",book:3,haft:{k:"II Kings",b:"4:42",e:"5:19"},fullkriyah:{"1":["12:1","13:5"],"2":["13:6","13:17"],"3":["13:18","13:23"],"4":["13:24","13:28"],"5":["13:29","13:39"],"6":["13:40","13:54"],"7":["13:55","13:59"],M:["13:57","13:59"]},weekday:{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"]}};var Metzora={num:28,hebrew:"מְּצֹרָע",book:3,haft:{k:"II Kings",b:"7:3",e:"7:20"},fullkriyah:{"1":["14:1","14:12"],"2":["14:13","14:20"],"3":["14:21","14:32"],"4":["14:33","14:53"],"5":["14:54","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]},weekday:{"1":["14:1","14:5"],"2":["14:6","14:9"],"3":["14:10","14:12"]}};var Kedoshim={num:30,hebrew:"קְדשִׁים",book:3,haft:{k:"Amos",b:"9:7",e:"9:15"},seph:{k:"Ezekiel",b:"20:2",e:"20:20"},fullkriyah:{"1":["19:1","19:14"],"2":["19:15","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"]},weekday:{"1":["19:1","19:4"],"2":["19:5","19:10"],"3":["19:11","19:14"]}};var Emor={num:31,hebrew:"אֱמוֹר",book:3,haft:{k:"Ezekiel",b:"44:15",e:"44:31"},fullkriyah:{"1":["21:1","21:15"],"2":["21:16","22:16"],"3":["22:17","22:33"],"4":["23:1","23:22"],"5":["23:23","23:32"],"6":["23:33","23:44"],"7":["24:1","24:23"],M:["24:21","24:23"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:12"],"3":["21:13","21:15"]}};var Behar={num:32,hebrew:"בְּהַר",book:3,haft:{k:"Jeremiah",b:"32:6",e:"32:27"},fullkriyah:{"1":["25:1","25:13"],"2":["25:14","25:18"],"3":["25:19","25:24"],"4":["25:25","25:28"],"5":["25:29","25:38"],"6":["25:39","25:46"],"7":["25:47","26:2"],M:["25:55","26:2"]},weekday:{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"]}};var Bechukotai={num:33,hebrew:"בְּחֻקֹּתַי",book:3,haft:{k:"Jeremiah",b:"16:19",e:"17:14"},fullkriyah:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:46"],"4":["27:1","27:15"],"5":["27:16","27:21"],"6":["27:22","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]},weekday:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:13"]}};var Bamidbar={num:34,hebrew:"בְּמִדְבַּר",book:4,haft:{k:"Hosea",b:"2:1",e:"2:22"},fullkriyah:{"1":["1:1","1:19"],"2":["1:20","1:54"],"3":["2:1","2:34"],"4":["3:1","3:13"],"5":["3:14","3:39"],"6":["3:40","3:51"],"7":["4:1","4:20"],M:["4:17","4:20"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:16"],"3":["1:17","1:19"]}};var Nasso={num:35,hebrew:"נָשׂא",book:4,haft:{k:"Judges",b:"13:2",e:"13:25"},fullkriyah:{"1":["4:21","4:37"],"2":["4:38","4:49"],"3":["5:1","5:10"],"4":["5:11","6:27"],"5":["7:1","7:41"],"6":["7:42","7:71"],"7":["7:72","7:89"],M:["7:87","7:89"]},weekday:{"1":["4:21","4:24"],"2":["4:25","4:28"],"3":["4:29","4:33"]}};var Korach={num:38,hebrew:"קוֹרַח",book:4,haft:{k:"I Samuel",b:"11:14",e:"12:22"},fullkriyah:{"1":["16:1","16:13"],"2":["16:14","16:19"],"3":["16:20","17:8"],"4":["17:9","17:15"],"5":["17:16","17:24"],"6":["17:25","18:20"],"7":["18:21","18:32"],M:["18:30","18:32"]},weekday:{"1":["16:1","16:3"],"2":["16:4","16:7"],"3":["16:8","16:13"]}};var Chukat={num:39,hebrew:"חֻקַּת",book:4,haft:{k:"Judges",b:"11:1",e:"11:33"},fullkriyah:{"1":["19:1","19:17"],"2":["19:18","20:6"],"3":["20:7","20:13"],"4":["20:14","20:21"],"5":["20:22","21:9"],"6":["21:10","21:20"],"7":["21:21","22:1"],M:["21:34","22:1"]},weekday:{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:17"]}};var Balak={num:40,hebrew:"בָּלָק",book:4,haft:{k:"Micah",b:"5:6",e:"6:8"},fullkriyah:{"1":["22:2","22:12"],"2":["22:13","22:20"],"3":["22:21","22:38"],"4":["22:39","23:12"],"5":["23:13","23:26"],"6":["23:27","24:13"],"7":["24:14","25:9"],M:["25:7","25:9"]},weekday:{"1":["22:2","22:4"],"2":["22:5","22:7"],"3":["22:8","22:12"]}};var Pinchas={num:41,hebrew:"פִּינְחָס",book:4,haft:{k:"I Kings",b:"18:46",e:"19:21"},fullkriyah:{"1":["25:10","26:4"],"2":["26:5","26:51"],"3":["26:52","27:5"],"4":["27:6","27:23"],"5":["28:1","28:15"],"6":["28:16","29:11"],"7":["29:12","30:1"],M:["29:35","30:1"]},weekday:{"1":["25:10","25:12"],"2":["25:13","25:15"],"3":["25:16","26:4"]}};var Matot={num:42,hebrew:"מַּטּוֹת",book:4,haft:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["30:2","30:17"],"2":["31:1","31:12"],"3":["31:13","31:24"],"4":["31:25","31:41"],"5":["31:42","31:54"],"6":["32:1","32:19"],"7":["32:20","32:42"],M:["32:39","32:42"]},weekday:{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"]}};var Masei={num:43,hebrew:"מַסְעֵי",book:4,haft:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"3:4",e:"3:4"}],seph:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"4:1",e:"4:2"}],fullkriyah:{"1":["33:1","33:10"],"2":["33:11","33:49"],"3":["33:50","34:15"],"4":["34:16","34:29"],"5":["35:1","35:8"],"6":["35:9","35:34"],"7":["36:1","36:13"],M:["36:11","36:13"]},weekday:{"1":["33:1","33:3"],"2":["33:4","33:6"],"3":["33:7","33:10"]}};var Devarim={num:44,hebrew:"דְּבָרִים",book:5,haft:{k:"Isaiah",b:"1:1",e:"1:27"},fullkriyah:{"1":["1:1","1:10"],"2":["1:11","1:21"],"3":["1:22","1:38"],"4":["1:39","2:1"],"5":["2:2","2:30"],"6":["2:31","3:14"],"7":["3:15","3:22"],M:["3:20","3:22"]},weekday:{"1":["1:1","1:3"],"2":["1:4","1:7"],"3":["1:8","1:11"]}};var Vaetchanan={num:45,hebrew:"וָאֶתְחַנַּן",book:5,haft:{k:"Isaiah",b:"40:1",e:"40:26"},fullkriyah:{"1":["3:23","4:4"],"2":["4:5","4:40"],"3":["4:41","4:49"],"4":["5:1","5:18"],"5":["5:19","6:3"],"6":["6:4","6:25"],"7":["7:1","7:11"],M:["7:9","7:11"]},weekday:{"1":["3:23","3:25"],"2":["3:26","4:4"],"3":["4:5","4:8"]}};var Eikev={num:46,hebrew:"עֵקֶב",book:5,haft:{k:"Isaiah",b:"49:14",e:"51:3"},fullkriyah:{"1":["7:12","8:10"],"2":["8:11","9:3"],"3":["9:4","9:29"],"4":["10:1","10:11"],"5":["10:12","11:9"],"6":["11:10","11:21"],"7":["11:22","11:25"],M:["11:22","11:25"]},weekday:{"1":["7:12","7:21"],"2":["7:22","8:3"],"3":["8:4","8:10"]}};var Shoftim={num:48,hebrew:"שׁוֹפְטִים",book:5,haft:{k:"Isaiah",b:"51:12",e:"52:12"},fullkriyah:{"1":["16:18","17:13"],"2":["17:14","17:20"],"3":["18:1","18:5"],"4":["18:6","18:13"],"5":["18:14","19:13"],"6":["19:14","20:9"],"7":["20:10","21:9"],M:["21:7","21:9"]},weekday:{"1":["16:18","16:20"],"2":["16:21","17:10"],"3":["17:11","17:13"]}};var Nitzavim={num:51,hebrew:"נִצָּבִים",book:5,haft:{k:"Isaiah",b:"61:10",e:"63:9"},fullkriyah:{"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"]},weekday:{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"]}};var Vayeilech={num:52,hebrew:"וַיֵּלֶךְ",book:5,haft:{k:"Isaiah",b:"55:6",e:"56:8"},fullkriyah:{"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"]},weekday:{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:13"]}};var parshiyotObj = {Bereshit:Bereshit,Noach:Noach,"Lech-Lecha":{num:3,hebrew:"לֶךְ־לְךָ",book:1,haft:{k:"Isaiah",b:"40:27",e:"41:16"},fullkriyah:{"1":["12:1","12:13"],"2":["12:14","13:4"],"3":["13:5","13:18"],"4":["14:1","14:20"],"5":["14:21","15:6"],"6":["15:7","17:6"],"7":["17:7","17:27"],M:["17:24","17:27"]},weekday:{"1":["12:1","12:3"],"2":["12:4","12:9"],"3":["12:10","12:13"]}},Vayera:Vayera,"Chayei Sara":{num:5,hebrew:"חַיֵּי שָֹרָה",book:1,haft:{k:"I Kings",b:"1:1",e:"1:31"},fullkriyah:{"1":["23:1","23:16"],"2":["23:17","24:9"],"3":["24:10","24:26"],"4":["24:27","24:52"],"5":["24:53","24:67"],"6":["25:1","25:11"],"7":["25:12","25:18"],M:["25:16","25:18"]},weekday:{"1":["23:1","23:7"],"2":["23:8","23:12"],"3":["23:13","23:16"]}},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":{num:21,hebrew:"כִּי תִשָּׂא",book:2,haft:{k:"I Kings",b:"18:1",e:"18:39"},seph:{k:"I Kings",b:"18:20",e:"18:39"},fullkriyah:{"1":["30:11","31:17"],"2":["31:18","33:11"],"3":["33:12","33:16"],"4":["33:17","33:23"],"5":["34:1","34:9"],"6":["34:10","34:26"],"7":["34:27","34:35"],M:["34:33","34:35"]},weekday:{"1":["30:11","30:13"],"2":["30:14","30:16"],"3":["30:17","30:21"]}},Vayakhel:Vayakhel,Pekudei:Pekudei,Vayikra:Vayikra,Tzav:Tzav,Shmini:Shmini,Tazria:Tazria,Metzora:Metzora,"Achrei Mot":{num:29,hebrew:"אַחֲרֵי מוֹת",book:3,haft:{k:"Ezekiel",b:"22:1",e:"22:19"},seph:{k:"Ezekiel",b:"22:1",e:"22:16"},fullkriyah:{"1":["16:1","16:17"],"2":["16:18","16:24"],"3":["16:25","16:34"],"4":["17:1","17:7"],"5":["17:8","18:5"],"6":["18:6","18:21"],"7":["18:22","18:30"],M:["18:28","18:30"]},weekday:{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"]}},Kedoshim:Kedoshim,Emor:Emor,Behar:Behar,Bechukotai:Bechukotai,Bamidbar:Bamidbar,Nasso:Nasso,"Beha'alotcha":{num:36,hebrew:"בְּהַעֲלֹתְךָ",book:4,haft:{k:"Zechariah",b:"2:14",e:"4:7"},fullkriyah:{"1":["8:1","8:14"],"2":["8:15","8:26"],"3":["9:1","9:14"],"4":["9:15","10:10"],"5":["10:11","10:34"],"6":["10:35","11:29"],"7":["11:30","12:16"],M:["12:14","12:16"]},weekday:{"1":["8:1","8:4"],"2":["8:5","8:9"],"3":["8:10","8:14"]}},"Sh'lach":{num:37,hebrew:"שְׁלַח־לְךָ",book:4,haft:{k:"Joshua",b:"2:1",e:"2:24"},fullkriyah:{"1":["13:1","13:20"],"2":["13:21","14:7"],"3":["14:8","14:25"],"4":["14:26","15:7"],"5":["15:8","15:16"],"6":["15:17","15:26"],"7":["15:27","15:41"],M:["15:37","15:41"]},weekday:{"1":["13:1","13:3"],"2":["13:4","13:16"],"3":["13:17","13:20"]}},Korach:Korach,Chukat:Chukat,Balak:Balak,Pinchas:Pinchas,Matot:Matot,Masei:Masei,Devarim:Devarim,Vaetchanan:Vaetchanan,Eikev:Eikev,"Re'eh":{num:47,hebrew:"רְאֵה",book:5,haft:{k:"Isaiah",b:"54:11",e:"55:5"},fullkriyah:{"1":["11:26","12:10"],"2":["12:11","12:28"],"3":["12:29","13:19"],"4":["14:1","14:21"],"5":["14:22","14:29"],"6":["15:1","15:18"],"7":["15:19","16:17"],M:["16:13","16:17"]},weekday:{"1":["11:26","11:31"],"2":["11:32","12:5"],"3":["12:6","12:10"]}},Shoftim:Shoftim,"Ki Teitzei":{num:49,hebrew:"כִּי־תֵצֵא",book:5,haft:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["21:10","21:21"],"2":["21:22","22:7"],"3":["22:8","23:7"],"4":["23:8","23:24"],"5":["23:25","24:4"],"6":["24:5","24:13"],"7":["24:14","25:19"],M:["25:17","25:19"]},weekday:{"1":["21:10","21:14"],"2":["21:15","21:17"],"3":["21:18","21:21"]}},"Ki Tavo":{num:50,hebrew:"כִּי־תָבוֹא",book:5,haft:{k:"Isaiah",b:"60:1",e:"60:22"},fullkriyah:{"1":["26:1","26:11"],"2":["26:12","26:15"],"3":["26:16","26:19"],"4":["27:1","27:10"],"5":["27:11","28:6"],"6":["28:7","28:69"],"7":["29:1","29:8"],M:["29:6","29:8"]},weekday:{"1":["26:1","26:3"],"2":["26:4","26:11"],"3":["26:12","26:15"]}},Nitzavim:Nitzavim,Vayeilech:Vayeilech,"Ha'Azinu":{num:53,hebrew:"הַאֲזִינוּ",book:5,haft:{k:"II Samuel",b:"22:1",e:"22:51"},fullkriyah:{"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"]},weekday:{"1":["32:1","32:3"],"2":["32:4","32:6"],"3":["32:7","32:12"]}},"Vezot Haberakhah":{num:54,hebrew:"וְזֹאת הַבְּרָכָה",book:5,haft:{k:"Joshua",b:"1:1",e:"1:18"},seph:{k:"Joshua",b:"1:1",e:"1:9"},fullkriyah:{"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"]},weekday:{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"]}},"Vayakhel-Pekudei":{num:101,combined:true,p1:"Vayakhel",p2:"Pekudei",num1:22,num2:23,book:2,fullkriyah:{"1":["35:1","35:29"],"2":["35:30","37:16"],"3":["37:17","37:29"],"4":["38:1","39:1"],"5":["39:2","39:21"],"6":["39:22","39:43"],"7":["40:1","40:38"],M:["40:34","40:38"]}},"Tazria-Metzora":{num:102,combined:true,p1:"Tazria",p2:"Metzora",num1:27,num2:28,book:3,fullkriyah:{"1":["12:1","13:23"],"2":["13:24","13:39"],"3":["13:40","13:54"],"4":["13:55","14:20"],"5":["14:21","14:32"],"6":["14:33","15:15"],"7":["15:16","15:33"],M:["15:31","15:33"]}},"Achrei Mot-Kedoshim":{num:103,combined:true,p1:"Achrei Mot",p2:"Kedoshim",num1:29,num2:30,book:3,fullkriyah:{"1":["16:1","16:24"],"2":["16:25","17:7"],"3":["17:8","18:21"],"4":["18:22","19:14"],"5":["19:15","19:32"],"6":["19:33","20:7"],"7":["20:8","20:27"],M:["20:25","20:27"]}},"Behar-Bechukotai":{num:104,combined:true,p1:"Behar",p2:"Bechukotai",num1:32,num2:33,book:3,fullkriyah:{"1":["25:1","25:18"],"2":["25:19","25:28"],"3":["25:29","25:38"],"4":["25:39","26:9"],"5":["26:10","26:46"],"6":["27:1","27:15"],"7":["27:16","27:34"],M:["27:32","27:34"]}},"Chukat-Balak":{num:105,combined:true,p1:"Chukat",p2:"Balak",num1:39,num2:40,book:4,fullkriyah:{"1":["19:1","20:6"],"2":["20:7","20:21"],"3":["20:22","21:20"],"4":["21:21","22:12"],"5":["22:13","22:38"],"6":["22:39","23:26"],"7":["23:27","25:9"],M:["25:7","25:9"]}},"Matot-Masei":{num:106,combined:true,p1:"Matot",p2:"Masei",num1:42,num2:43,book:4,fullkriyah:{"1":["30:2","31:12"],"2":["31:13","31:54"],"3":["32:1","32:19"],"4":["32:20","33:49"],"5":["33:50","34:15"],"6":["34:16","35:8"],"7":["35:9","36:13"],M:["36:11","36:13"]}},"Nitzavim-Vayeilech":{num:107,combined:true,p1:"Nitzavim",p2:"Vayeilech",num1:51,num2:52,book:5,fullkriyah:{"1":["29:9","29:28"],"2":["30:1","30:6"],"3":["30:7","30:14"],"4":["30:15","31:6"],"5":["31:7","31:13"],"6":["31:14","31:19"],"7":["31:20","31:30"],M:["31:28","31:30"]}}};
@@ -1711,8 +1661,10 @@ var Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:"4
1711
1661
  */
1712
1662
  function getLeyningForHoliday(ev) {
1713
1663
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1714
- if (_typeof(ev) !== 'object' || !(ev instanceof core.Event)) {
1664
+ if (_typeof(ev) !== 'object' || typeof ev.getFlags !== 'function') {
1715
1665
  throw new TypeError("Bad event argument: ".concat(ev));
1666
+ } else if (typeof ev.eventTime !== 'undefined') {
1667
+ return undefined;
1716
1668
  } else if (ev.getFlags() & core.flags.PARSHA_HASHAVUA) {
1717
1669
  throw new TypeError("Event should be a holiday: ".concat(ev.getDesc()));
1718
1670
  } else if (ev.getFlags() & HOLIDAY_IGNORE_MASK) {
@@ -1794,16 +1746,12 @@ function getHaftaraKey(parsha) {
1794
1746
 
1795
1747
  /**
1796
1748
  * Looks up regular leyning for a weekly parsha with no special readings
1749
+ * @private
1797
1750
  * @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
1798
1751
  * @return {Leyning} map of aliyot
1799
1752
  */
1800
- function getLeyningForParsha(parsha) {
1801
- var isParshaString = typeof parsha === 'string';
1802
- if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
1803
- throw new TypeError("Bad parsha argument: ".concat(parsha));
1804
- }
1805
- var name = isParshaString ? parsha : parshaToString(parsha);
1806
- var raw = parshiyotObj[name];
1753
+ function getLeyningForParshaShabbatOnly(parsha) {
1754
+ var raw = lookupParsha(parsha);
1807
1755
  var fullkriyah = {};
1808
1756
  var book = BOOK[raw.book];
1809
1757
  Object.keys(raw.fullkriyah).forEach(function (num) {
@@ -1818,7 +1766,8 @@ function getLeyningForParsha(parsha) {
1818
1766
  Object.values(fullkriyah).map(function (aliyah) {
1819
1767
  return calculateNumVerses(aliyah);
1820
1768
  });
1821
- var parshaNameArray = isParshaString ? raw.combined ? [raw.p1, raw.p2] : [parsha] : parsha;
1769
+ var name = parshaToString(parsha);
1770
+ var parshaNameArray = raw.combined ? [raw.p1, raw.p2] : [name];
1822
1771
  var parts = makeLeyningParts(fullkriyah);
1823
1772
  var summary = makeSummaryFromParts(parts);
1824
1773
  /** @type {Leyning} */
@@ -1849,20 +1798,45 @@ function getLeyningForParsha(parsha) {
1849
1798
  result.sephardic = makeSummaryFromParts(seph);
1850
1799
  result.sephardicNumV = sumVerses(seph);
1851
1800
  }
1852
- var weekdaySrc = raw.weekday || parshiyotObj[parshaNameArray[0]].weekday;
1853
- if (weekdaySrc) {
1854
- var weekday = result.weekday = {};
1855
- ['1', '2', '3'].forEach(function (num) {
1856
- var src = weekdaySrc[num];
1857
- var aliyah = {
1858
- k: book,
1859
- b: src[0],
1860
- e: src[1]
1861
- };
1862
- calculateNumVerses(aliyah);
1863
- weekday[num] = aliyah;
1864
- });
1801
+ return result;
1802
+ }
1803
+
1804
+ /**
1805
+ * Looks up Monday/Thursday aliyot for a regular parsha
1806
+ * @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
1807
+ * @return {Object<string,Aliyah>} map of aliyot
1808
+ */
1809
+ function getWeekdayReading(parsha) {
1810
+ var raw = lookupParsha(parsha);
1811
+ var parshaMeta = raw.combined ? lookupParsha(raw.p1) : raw;
1812
+ var aliyot = parshaMeta.weekday;
1813
+ if (!aliyot) {
1814
+ throw new Error("Parsha missing weekday: ".concat(parsha));
1815
+ }
1816
+ var book = BOOK[raw.book];
1817
+ var weekday = {};
1818
+ for (var i = 1; i <= 3; i++) {
1819
+ var num = '' + i;
1820
+ var src = aliyot[num];
1821
+ var aliyah = {
1822
+ k: book,
1823
+ b: src[0],
1824
+ e: src[1]
1825
+ };
1826
+ calculateNumVerses(aliyah);
1827
+ weekday[num] = aliyah;
1865
1828
  }
1829
+ return weekday;
1830
+ }
1831
+
1832
+ /**
1833
+ * Looks up regular leyning for a weekly parsha with no special readings
1834
+ * @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
1835
+ * @return {Leyning} map of aliyot
1836
+ */
1837
+ function getLeyningForParsha(parsha) {
1838
+ var result = getLeyningForParshaShabbatOnly(parsha);
1839
+ result.weekday = getWeekdayReading(parsha);
1866
1840
  return result;
1867
1841
  }
1868
1842
 
@@ -1875,29 +1849,30 @@ function getLeyningForParsha(parsha) {
1875
1849
  */
1876
1850
  function getLeyningForParshaHaShavua(ev) {
1877
1851
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1878
- if (!ev instanceof core.Event) {
1852
+ if (_typeof(ev) !== 'object' || typeof ev.getFlags !== 'function') {
1879
1853
  throw new TypeError("Bad event argument: ".concat(ev));
1880
1854
  } else if (ev.getFlags() != core.flags.PARSHA_HASHAVUA) {
1881
1855
  throw new TypeError("Event must be parsha hashavua: ".concat(ev.getDesc()));
1882
1856
  }
1883
1857
  // first, collect the default aliyot and haftara
1884
1858
  var parsha = ev.parsha;
1885
- var result = getLeyningForParsha(parsha);
1886
- var reason = {};
1859
+ var result = getLeyningForParshaShabbatOnly(parsha);
1887
1860
  var hd = ev.getDate();
1888
1861
  // Now, check for special maftir or haftara on same date
1889
- var specialHaftara = specialReadings(hd, il, result.fullkriyah, reason, parsha, true);
1890
- if (specialHaftara) {
1891
- var haft = result.haft = cloneHaftara(specialHaftara.haft);
1862
+ var special = specialReadings2(parsha, hd, il, result.fullkriyah);
1863
+ var reason = special.reason;
1864
+ if (special.haft) {
1865
+ var haft = result.haft = cloneHaftara(special.haft);
1892
1866
  result.haftara = makeSummaryFromParts(haft);
1893
1867
  result.haftaraNumV = sumVerses(haft);
1894
- if (specialHaftara.seph) {
1895
- var seph = result.seph = cloneHaftara(specialHaftara.seph);
1868
+ if (special.seph) {
1869
+ var seph = result.seph = cloneHaftara(special.seph);
1896
1870
  result.sephardic = makeSummaryFromParts(seph);
1897
1871
  result.sephardicNumV = sumVerses(seph);
1898
1872
  }
1899
1873
  }
1900
1874
  if (reason['7'] || reason['M']) {
1875
+ result.fullkriyah = special.aliyot;
1901
1876
  var parts = makeLeyningParts(result.fullkriyah);
1902
1877
  result.summary = makeSummaryFromParts(parts);
1903
1878
  result.summaryParts = parts;
@@ -1920,8 +1895,6 @@ function getLeyningForParshaHaShavua(ev) {
1920
1895
  }
1921
1896
  });
1922
1897
  }
1923
- // to avoid confusion, don't include Saturday mincha reading here
1924
- delete result.weekday;
1925
1898
  return result;
1926
1899
  }
1927
1900
 
@@ -2016,15 +1989,11 @@ function findParshaHaShavua(saturday, il) {
2016
1989
 
2017
1990
  /**
2018
1991
  * Returns the parsha metadata
2019
- * @param {string|string[]} parsha
1992
+ * @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
2020
1993
  * @return {ParshaMeta}
2021
1994
  */
2022
1995
  function lookupParsha(parsha) {
2023
- var isParshaString = typeof parsha === 'string';
2024
- if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
2025
- throw new TypeError("Bad parsha argument: ".concat(parsha));
2026
- }
2027
- var name = isParshaString ? parsha : parshaToString(parsha);
1996
+ var name = parshaToString(parsha);
2028
1997
  var raw = parshiyotObj[name];
2029
1998
  if (_typeof(raw) !== 'object') {
2030
1999
  throw new TypeError("Bad parsha argument: ".concat(parsha));
@@ -2220,6 +2189,7 @@ exports.getLeyningForParshaHaShavua = getLeyningForParshaHaShavua;
2220
2189
  exports.getLeyningKeyForEvent = getLeyningKeyForEvent;
2221
2190
  exports.getLeyningOnDate = getLeyningOnDate;
2222
2191
  exports.getParshaDates = getParshaDates;
2192
+ exports.getWeekdayReading = getWeekdayReading;
2223
2193
  exports.hasFestival = hasFestival;
2224
2194
  exports.lookupFestival = lookupFestival;
2225
2195
  exports.lookupParsha = lookupParsha;
@@ -2227,7 +2197,7 @@ exports.makeLeyningParts = makeLeyningParts;
2227
2197
  exports.makeLeyningSummary = makeLeyningSummary;
2228
2198
  exports.makeSummaryFromParts = makeSummaryFromParts;
2229
2199
  exports.parshaToString = parshaToString;
2230
- exports.specialReadings = specialReadings;
2200
+ exports.specialReadings2 = specialReadings2;
2231
2201
  exports.sumVerses = sumVerses;
2232
2202
  exports.writeCsvLines = writeCsvLines;
2233
2203
  exports.writeFullKriyahCsv = writeFullKriyahCsv;