@hebcal/core 4.1.0 → 4.2.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/greg0.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v4.1.0 */
1
+ /*! @hebcal/core v4.2.0 */
2
2
  /*
3
3
  * More minimal greg routines
4
4
  */
@@ -1,65 +1,38 @@
1
- /*! @hebcal/core v4.1.0 */
1
+ /*! @hebcal/core v4.2.0 */
2
2
  var hebcal = (function (exports) {
3
3
  'use strict';
4
4
 
5
5
  var GERESH = '׳';
6
6
  var GERSHAYIM = '״';
7
-
8
- /**
9
- * @private
10
- * @param {number} num
11
- * @return {string}
12
- */
13
- function num2heb(num) {
14
- switch (num) {
15
- case 1:
16
- return 'א';
17
- case 2:
18
- return 'ב';
19
- case 3:
20
- return 'ג';
21
- case 4:
22
- return 'ד';
23
- case 5:
24
- return 'ה';
25
- case 6:
26
- return 'ו';
27
- case 7:
28
- return 'ז';
29
- case 8:
30
- return 'ח';
31
- case 9:
32
- return 'ט';
33
- case 10:
34
- return 'י';
35
- case 20:
36
- return 'כ';
37
- case 30:
38
- return 'ל';
39
- case 40:
40
- return 'מ';
41
- case 50:
42
- return 'נ';
43
- case 60:
44
- return 'ס';
45
- case 70:
46
- return 'ע';
47
- case 80:
48
- return 'פ';
49
- case 90:
50
- return 'צ';
51
- case 100:
52
- return 'ק';
53
- case 200:
54
- return 'ר';
55
- case 300:
56
- return 'ש';
57
- case 400:
58
- return 'ת';
59
- default:
60
- return '*INVALID*';
61
- }
62
- }
7
+ var heb2num = {
8
+ 'א': 1,
9
+ 'ב': 2,
10
+ 'ג': 3,
11
+ 'ד': 4,
12
+ 'ה': 5,
13
+ 'ו': 6,
14
+ 'ז': 7,
15
+ 'ח': 8,
16
+ 'ט': 9,
17
+ 'י': 10,
18
+ 'כ': 20,
19
+ 'ל': 30,
20
+ 'מ': 40,
21
+ 'נ': 50,
22
+ 'ס': 60,
23
+ 'ע': 70,
24
+ 'פ': 80,
25
+ 'צ': 90,
26
+ 'ק': 100,
27
+ 'ר': 200,
28
+ 'ש': 300,
29
+ 'ת': 400
30
+ };
31
+ var num2heb = {};
32
+ Object.keys(heb2num).forEach(function (key) {
33
+ var val = heb2num[key];
34
+ num2heb[val] = key;
35
+ });
63
36
 
64
37
  /**
65
38
  * @private
@@ -111,19 +84,19 @@ function gematriya(number) {
111
84
  if (thousands > 0 && thousands !== 5) {
112
85
  var tdigits = num2digits(thousands);
113
86
  for (var i = 0; i < tdigits.length; i++) {
114
- str += num2heb(tdigits[i]);
87
+ str += num2heb[tdigits[i]];
115
88
  }
116
89
  str += GERESH;
117
90
  }
118
91
  var digits = num2digits(num % 1000);
119
92
  if (digits.length == 1) {
120
- return str + num2heb(digits[0]) + GERESH;
93
+ return str + num2heb[digits[0]] + GERESH;
121
94
  }
122
95
  for (var _i = 0; _i < digits.length; _i++) {
123
96
  if (_i + 1 === digits.length) {
124
97
  str += GERSHAYIM;
125
98
  }
126
- str += num2heb(digits[_i]);
99
+ str += num2heb[digits[_i]];
127
100
  }
128
101
  return str;
129
102
  }
@@ -1157,7 +1130,7 @@ var HDate = /*#__PURE__*/function () {
1157
1130
  /**
1158
1131
  * Sets the day of the month of the date. Returns the object it was called upon
1159
1132
  * @private
1160
- * @param {number} month
1133
+ * @param {number|string} month A number, or Hebrew month name string
1161
1134
  * @return {HDate}
1162
1135
  */
1163
1136
  }, {
@@ -1663,7 +1636,10 @@ var HDate = /*#__PURE__*/function () {
1663
1636
  }
1664
1637
  return monthName;
1665
1638
  }
1666
- var c = monthName.toLowerCase();
1639
+ var c = Locale.hebrewStripNikkud(monthName).trim().toLowerCase();
1640
+ if (c[0] === 'ב') {
1641
+ c = c.substring(1);
1642
+ }
1667
1643
  /*
1668
1644
  the Hebrew months are unique to their second letter
1669
1645
  N Nisan (November?)
@@ -1948,7 +1924,7 @@ function getBirthdayOrAnniversary_(hyear, gdate) {
1948
1924
  return new HDate(day, month, hyear);
1949
1925
  }
1950
1926
 
1951
- var version="4.1.0";
1927
+ var version="4.2.0";
1952
1928
 
1953
1929
  var headers={"plural-forms":"nplurals=2; plural=(n > 1);"};var contexts={"":{Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"]}};var poHeMin = {headers:headers,contexts:contexts};
1954
1930
 
@@ -1,2 +1,2 @@
1
- /*! @hebcal/core v4.1.0 */
2
- var hebcal=function(e){"use strict";function t(e){switch(e){case 1:return"א";case 2:return"ב";case 3:return"ג";case 4:return"ד";case 5:return"ה";case 6:return"ו";case 7:return"ז";case 8:return"ח";case 9:return"ט";case 10:return"י";case 20:return"כ";case 30:return"ל";case 40:return"מ";case 50:return"נ";case 60:return"ס";case 70:return"ע";case 80:return"פ";case 90:return"צ";case 100:return"ק";case 200:return"ר";case 300:return"ש";case 400:return"ת";default:return"*INVALID*"}}function r(e){for(var t=[];e>0;){if(15===e||16===e){t.push(9),t.push(e-9);break}var r=100,n=void 0;for(n=400;n>e;n-=r)n===r&&(r/=10);t.push(n),e-=n}return t}function n(e){var n=parseInt(e,10);if(!n)throw new TypeError("invalid parameter to gematriya ".concat(e));var a="",o=Math.floor(n/1e3);if(o>0&&5!==o){for(var u=r(o),i=0;i<u.length;i++)a+=t(u[i]);a+="׳"}var c=r(n%1e3);if(1==c.length)return a+t(c[0])+"׳";for(var s=0;s<c.length;s++)s+1===c.length&&(a+="״"),a+=t(c[s]);return a}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(a=n.key,o=void 0,"symbol"==typeof(o=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(a,"string"))?o:String(o)),n)}var a,o}function i(e,t,r){return t&&u(e.prototype,t),r&&u(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var c=[0,31,28,31,30,31,30,31,31,30,31,30,31],s=[c,c.slice()];function h(e,t){return e-t*Math.floor(e/t)}function l(e,t){return Math.floor(e/t)}function f(e){return!(e%4||!(e%100)&&e%400)}function y(e){return"object"===a(e)&&Date.prototype===e.__proto__}function v(e){if(!y(e))throw new TypeError("Argument not a Date: ".concat(e));return d(e.getFullYear(),e.getMonth()+1,e.getDate())}function d(e,t,r){var n=e-1;return 365*n+l(n,4)-l(n,100)+l(n,400)+l(367*t-362,12)+(t<=2?0:f(e)?-1:-2)+r}function m(e){if("number"!=typeof e)throw new TypeError("Argument not a Number: ".concat(e));var t=function(e){var t=e-1,r=l(t,146097),n=h(t,146097),a=l(n,36524),o=h(n,36524),u=l(o,1461),i=l(h(o,1461),365),c=400*r+100*a+4*u+i;return 4!=a&&4!=i?c+1:c}(e=Math.trunc(e)),r=l(12*(e-d(t,1,1)+(e<d(t,3,1)?0:f(t)?1:2))+373,367),n=e-d(t,r,1)+1,a=new Date(t,r-1,n);return t<100&&t>=0&&a.setFullYear(t),a}s[1][2]=29;var g={monthNames:["","January","February","March","April","May","June","July","August","September","October","November","December"],isLeapYear:f,daysInMonth:function(e,t){return s[+f(t)][e]},isDate:y,dayOfYear:function(e){if(!y(e))throw new TypeError("Argument not a Date: ".concat(e));var t=e.getMonth(),r=e.getDate()+31*t;return t>1&&(r-=Math.floor((4*(t+1)+23)/10),f(e.getFullYear())&&r++),r},greg2abs:v,abs2greg:m},w={headers:{"plural-forms":"nplurals=2; plural=(n!=1);"},contexts:{"":{}}},p={h:"he",a:"ashkenazi",s:"en","":"en"},b=Object.create(null),k=null,I=null,A=function(){function e(){o(this,e)}return i(e,null,[{key:"lookupTranslation",value:function(e,t){var r=t&&t.toLowerCase(),n=("string"==typeof t&&b[r]||k)[e];if(n&&n.length&&n[0].length)return n[0]}},{key:"gettext",value:function(e,t){var r=this.lookupTranslation(e,t);return void 0===r?e:r}},{key:"addLocale",value:function(e,t){if("string"!=typeof e)throw new TypeError("Invalid locale name: ".concat(e));if("object"!==a(t.contexts)||"object"!==a(t.contexts[""]))throw new TypeError("Locale '".concat(e,"' invalid compact format"));b[e.toLowerCase()]=t.contexts[""]}},{key:"addTranslation",value:function(e,t,r){if("string"!=typeof e)throw new TypeError("Invalid locale name: ".concat(e));var n=e.toLowerCase(),a=b[n];if(!a)throw new TypeError("Unknown locale: ".concat(e));if("string"!=typeof t||0===t.length)throw new TypeError("Invalid id: ".concat(t));var o=Array.isArray(r);if(o){var u=r[0];if("string"!=typeof u||0===u.length)throw new TypeError("Invalid translation array: ".concat(r))}else if("string"!=typeof r)throw new TypeError("Invalid translation: ".concat(r));a[t]=o?r:[r]}},{key:"addTranslations",value:function(e,t){if("string"!=typeof e)throw new TypeError("Invalid locale name: ".concat(e));var r=e.toLowerCase(),n=b[r];if(!n)throw new TypeError("Unknown locale: ".concat(e));if("object"!==a(t.contexts)||"object"!==a(t.contexts[""]))throw new TypeError("Locale '".concat(e,"' invalid compact format"));var o=t.contexts[""];Object.keys(o).forEach((function(e){n[e]=o[e]}))}},{key:"useLocale",value:function(e){var t=e.toLowerCase(),r=b[t];if(!r)throw new RangeError("Locale '".concat(e,"' not found"));return I=p[t]||t,k=r}},{key:"getLocaleName",value:function(){return I}},{key:"getLocaleNames",value:function(){return Object.keys(b).sort()}},{key:"ordinal",value:function(e,t){var r=t&&t.toLowerCase()||I;if(!r)return this.getEnOrdinal(e);switch(r){case"en":case"s":case"a":case"ashkenazi":case"ashkenazi_litvish":case"ashkenazi_poylish":case"ashkenazi_standard":return this.getEnOrdinal(e);case"es":return e+"º";case"h":case"he":case"he-x-nonikud":return String(e);default:return e+"."}}},{key:"getEnOrdinal",value:function(e){var t=["th","st","nd","rd"],r=e%100;return e+(t[(r-20)%10]||t[r]||t[0])}},{key:"hebrewStripNikkud",value:function(e){return e.replace(/[\u0590-\u05bd]/g,"").replace(/[\u05bf-\u05c7]/g,"")}}]),e}();A.addLocale("en",w),A.addLocale("s",w),A.addLocale("",w),A.useLocale("en");var E=1,T=2,N=4,D=6,L=7,M=8,S=9,Y=10,H=12,R=13,O={NISAN:1,IYYAR:2,SIVAN:3,TAMUZ:4,AV:5,ELUL:6,TISHREI:7,CHESHVAN:8,KISLEV:9,TEVET:10,SHVAT:11,ADAR_I:12,ADAR_II:13},V=["","Nisan","Iyyar","Sivan","Tamuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Sh'vat"],x=[V.concat(["Adar","Nisan"]),V.concat(["Adar I","Adar II","Nisan"])],C=Object.create(null),F=-1373428,_=365.24682220597794;function j(e,t){if("number"!=typeof e||isNaN(e))throw new TypeError("invalid parameter '".concat(t,"' not a number: ").concat(e))}function z(e,t,r){if(j(e,"year"),j(t,"month"),j(r,"day"),e<1)throw new RangeError("hebrew2abs: invalid year ".concat(e));var n=r;if(t<L){for(var a=L;a<=P(e);a++)n+=J(a,e);for(var o=E;o<t;o++)n+=J(o,e)}else for(var u=L;u<t;u++)n+=J(u,e);return F+$(e)+n-1}function U(e){return F+$(e)}function K(e){if(j(e,"abs"),(e=Math.trunc(e))<=F)throw new RangeError("abs2hebrew: ".concat(e," is before epoch"));for(var t=Math.floor((e-F)/_);U(t)<=e;)++t;for(var r=e<z(--t,1,1)?7:1;e>z(t,r,J(r,t));)++r;return{yy:t,mm:r,dd:1+e-z(t,r,1)}}function B(e){return(1+7*e)%19<7}function P(e){return 12+B(e)}function J(e,t){switch(e){case T:case N:case D:case Y:case R:return 29}return e===H&&!B(t)||e===M&&!G(t)||e===S&&Q(t)?29:30}function Z(e,t){if(j(e,"month"),j(t,"year"),e<1||e>14)throw new TypeError("bad month argument ".concat(e));return x[+B(t)][e]}function $(e){var t=C[e]=C[e]||function(e){var t=e-1,r=235*Math.floor(t/19)+t%19*12+Math.floor((t%19*7+1)/19),n=204+r%1080*793,a=5+12*r+793*Math.floor(r/1080)+Math.floor(n/1080),o=n%1080+a%24*1080,u=1+29*r+Math.floor(a/24),i=u+(o>=19440||2==u%7&&o>=9924&&!B(e)||1==u%7&&o>=16789&&B(t));return i+(i%7==0||i%7==3||i%7==5)}(e);return t}function q(e){return $(e+1)-$(e)}function G(e){return q(e)%10==5}function Q(e){return q(e)%10==3}function W(e){throw new TypeError(e)}var X="day",ee="week",te="month",re="year",ne={d:X,w:ee,M:te,y:re},ae={day:X,week:ee,month:te,year:re},oe=function(){function e(t,r,n){if(o(this,e),2==arguments.length||arguments.length>3)throw new TypeError("HDate constructor requires 0, 1 or 3 arguments");if(3==arguments.length){if(this.day=this.month=1,n=parseInt(n,10),isNaN(n))throw new TypeError("HDate called with bad year argument: ".concat(n));if(this.year=n,this.setMonth(r),t=parseInt(t,10),isNaN(t))throw new TypeError("HDate called with bad day argument: ".concat(t));this.setDate(t)}else{void 0===t&&(t=new Date);var a="number"!=typeof t||isNaN(t)?y(t)?v(t):e.isHDate(t)?{dd:t.day,mm:t.month,yy:t.year}:W("HDate called with bad argument: ".concat(t)):t,u="number"==typeof a,i=u?K(a):a;this.day=i.dd,this.month=i.mm,this.year=i.yy,u&&(this.abs0=a)}}return i(e,[{key:"getFullYear",value:function(){return this.year}},{key:"isLeapYear",value:function(){return B(this.year)}},{key:"getMonth",value:function(){return this.month}},{key:"getTishreiMonth",value:function(){var e=P(this.getFullYear());return(this.getMonth()+e-6)%e||e}},{key:"daysInMonth",value:function(){return J(this.getMonth(),this.getFullYear())}},{key:"getDate",value:function(){return this.day}},{key:"getDay",value:function(){return h(this.abs(),7)}},{key:"setFullYear",value:function(e){return this.year=e,ue(this),this}},{key:"setMonth",value:function(t){return this.month=e.monthNum(t),ue(this),this}},{key:"setDate",value:function(e){return this.day=e,ue(this),this}},{key:"greg",value:function(){return m(this.abs())}},{key:"abs",value:function(){return"number"!=typeof this.abs0&&(this.abs0=z(this.year,this.month,this.day)),this.abs0}},{key:"getMonthName",value:function(){return Z(this.getMonth(),this.getFullYear())}},{key:"render",value:function(){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||A.getLocaleName(),n=this.getDate(),a=A.gettext(this.getMonthName(),r),o=A.ordinal(n,r),u=e.getDayOfTranslation(r),i="".concat(o).concat(u," ").concat(a);if(t){var c=this.getFullYear();return"".concat(i,", ").concat(c)}return i}},{key:"renderGematriya",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getDate(),r=e?"he-x-NoNikud":"he",a=A.gettext(this.getMonthName(),r),o=this.getFullYear();return n(t)+" "+a+" "+n(o)}},{key:"before",value:function(e){return ce(e,this,-1)}},{key:"onOrBefore",value:function(e){return ce(e,this,0)}},{key:"nearest",value:function(e){return ce(e,this,3)}},{key:"onOrAfter",value:function(e){return ce(e,this,6)}},{key:"after",value:function(e){return ce(e,this,7)}},{key:"next",value:function(){return new e(this.abs()+1)}},{key:"prev",value:function(){return new e(this.abs()-1)}},{key:"add",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"d";if(!(t=parseInt(t,10)))return new e(this);if((r=e.standardizeUnits(r))===X)return new e(this.abs()+t);if(r===ee)return new e(this.abs()+7*t);if(r===re)return new e(this.getDate(),this.getMonth(),this.getFullYear()+t);if(r===te){var n=new e(this),a=t>0?1:-1;t=Math.abs(t);for(var o=0;o<t;o++)n=new e(n.abs()+a*n.daysInMonth());return n}}},{key:"subtract",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"d";return this.add(-1*e,t)}},{key:"deltaDays",value:function(t){if(!e.isHDate(t))throw new TypeError("Bad argument: ".concat(t));return this.abs()-t.abs()}},{key:"isSameDate",value:function(t){return!!e.isHDate(t)&&(this.year==t.year&&this.month==t.month&&this.day==t.day)}},{key:"toString",value:function(){var e=this.getDate(),t=this.getFullYear(),r=this.getMonthName();return"".concat(e," ").concat(r," ").concat(t)}}],[{key:"hebrew2abs",value:function(e,t,r){return z(e,t,r)}},{key:"abs2hebrew",value:function(e){return K(e)}},{key:"getDayOfTranslation",value:function(e){switch(e){case"en":case"s":case"a":case"ashkenazi":return" of"}var t=A.lookupTranslation("of",e);return t?" "+t:"ashkenazi"===e.substring(0,9)?" of":""}},{key:"standardizeUnits",value:function(e){var t=ne[e]||String(e||"").toLowerCase().replace(/s$/,"");return ae[t]||W("Invalid units '".concat(e,"'"))}},{key:"isLeapYear",value:function(e){return B(e)}},{key:"monthsInYear",value:function(e){return P(e)}},{key:"daysInMonth",value:function(e,t){return J(e,t)}},{key:"getMonthName",value:function(e,t){return Z(e,t)}},{key:"monthNum",value:function(t){if("number"==typeof t){if(isNaN(t)||t>14)throw new RangeError("Invalid month number: ".concat(t));return t}return t.charCodeAt(0)>=48&&t.charCodeAt(0)<=57?parseInt(t,10):e.monthFromName(t)}},{key:"daysInYear",value:function(e){return q(e)}},{key:"longCheshvan",value:function(e){return G(e)}},{key:"shortKislev",value:function(e){return Q(e)}},{key:"monthFromName",value:function(e){if("number"==typeof e){if(isNaN(e)||e<1||e>14)throw new RangeError("Invalid month name: ".concat(e));return e}var t=e.toLowerCase();switch(t[0]){case"n":case"נ":if("o"==t[1])break;return O.NISAN;case"i":return O.IYYAR;case"e":return O.ELUL;case"c":case"ח":return O.CHESHVAN;case"k":case"כ":return O.KISLEV;case"s":switch(t[1]){case"i":return O.SIVAN;case"h":return O.SHVAT}case"t":switch(t[1]){case"a":return O.TAMUZ;case"i":return O.TISHREI;case"e":return O.TEVET}break;case"a":switch(t[1]){case"v":return O.AV;case"d":return/(1|[^i]i|a|א)$/i.test(e)?O.ADAR_I:O.ADAR_II}break;case"ס":return O.SIVAN;case"ט":return O.TEVET;case"ש":return O.SHVAT;case"א":switch(t[1]){case"ב":return O.AV;case"ד":return/(1|[^i]i|a|א)$/i.test(e)?O.ADAR_I:O.ADAR_II;case"י":return O.IYYAR;case"ל":return O.ELUL}break;case"ת":switch(t[1]){case"מ":return O.TAMUZ;case"ש":return O.TISHREI}}throw new RangeError("Unable to parse month name: ".concat(e))}},{key:"dayOnOrBefore",value:function(e,t){return t-(t-e)%7}},{key:"isHDate",value:function(e){return null!==e&&"object"===a(e)&&"number"==typeof e.year&&"number"==typeof e.month&&"number"==typeof e.day&&"function"==typeof e.greg&&"function"==typeof e.abs}}]),e}();function ue(e){ie(e),function(e){e.day<1&&(e.month==O.TISHREI&&(e.year-=1),e.day+=J(e.month,e.year),e.month-=1,ue(e));e.day>J(e.month,e.year)&&(e.month===O.ELUL&&(e.year+=1),e.day-=J(e.month,e.year),e.month+=1,ue(e));ie(e)}(e)}function ie(e){e.month!==O.ADAR_II||e.isLeapYear()?e.month<1?(e.month+=P(e.year),e.year-=1,ue(e)):e.month>P(e.year)&&(e.month-=P(e.year),e.year+=1,ue(e)):(e.month-=1,ue(e)),delete e.abs0}function ce(e,t,r){return new oe(oe.dayOnOrBefore(e,t.abs()+r))}var se=O.NISAN,he=O.CHESHVAN,le=O.KISLEV,fe=O.TEVET,ye=O.SHVAT,ve=O.ADAR_I,de=O.ADAR_II;var me={headers:{"plural-forms":"nplurals=2; plural=(n > 1);"},contexts:{"":{Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"]}}};A.addLocale("he",me),A.addLocale("h",me);var ge=me.contexts[""],we={};return Object.keys(ge).forEach((function(e){we[e]=[A.hebrewStripNikkud(ge[e][0])]})),A.addLocale("he-x-NoNikud",{headers:me.headers,contexts:{"":we}}),e.HDate=oe,e.Locale=A,e.gematriya=n,e.getBirthdayOrAnniversary=function(e,t){var r=oe.isHDate(t)?t:new oe(t),n=r.getFullYear();if(e===n)return r;if(!(e<n)){var a=B(n),o=r.getMonth(),u=r.getDate();return o==ve&&!a||o==de&&a?o=P(e):o!=he||30!=u||G(e)?o==le&&30==u&&Q(e)?(o=fe,u=1):o==ve&&30==u&&a&&!B(e)&&(o=se,u=1):(o=le,u=1),new oe(u,o,e)}},e.getYahrzeit=function(e,t){var r=oe.isHDate(t)?t:new oe(t),n={yy:r.getFullYear(),mm:r.getMonth(),dd:r.getDate()};if(!(e<=n.yy))return n.mm!=he||30!=n.dd||G(n.yy+1)?n.mm==le&&30==n.dd&&Q(n.yy+1)?n=K(z(e,fe,1)-1):n.mm==de?n.mm=P(e):n.mm!=ve||30!=n.dd||B(e)||(n.dd=30,n.mm=ye):n=K(z(e,le,1)-1),n.mm!=he||30!=n.dd||G(e)?n.mm==le&&30==n.dd&&Q(e)&&(n.mm=fe,n.dd=1):(n.mm=le,n.dd=1),new oe(n.dd,n.mm,e)},e.greg=g,e.months=O,e.version="4.1.0",e}({});
1
+ /*! @hebcal/core v4.2.0 */
2
+ var hebcal=function(e){"use strict";var t={"א":1,"ב":2,"ג":3,"ד":4,"ה":5,"ו":6,"ז":7,"ח":8,"ט":9,"י":10,"כ":20,"ל":30,"מ":40,"נ":50,"ס":60,"ע":70,"פ":80,"צ":90,"ק":100,"ר":200,"ש":300,"ת":400},r={};function n(e){for(var t=[];e>0;){if(15===e||16===e){t.push(9),t.push(e-9);break}var r=100,n=void 0;for(n=400;n>e;n-=r)n===r&&(r/=10);t.push(n),e-=n}return t}function a(e){var t=parseInt(e,10);if(!t)throw new TypeError("invalid parameter to gematriya ".concat(e));var a="",o=Math.floor(t/1e3);if(o>0&&5!==o){for(var i=n(o),u=0;u<i.length;u++)a+=r[i[u]];a+="׳"}var c=n(t%1e3);if(1==c.length)return a+r[c[0]]+"׳";for(var s=0;s<c.length;s++)s+1===c.length&&(a+="״"),a+=r[c[s]];return a}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(a=n.key,o=void 0,"symbol"==typeof(o=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(a,"string"))?o:String(o)),n)}var a,o}function c(e,t,r){return t&&u(e.prototype,t),r&&u(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}Object.keys(t).forEach((function(e){r[t[e]]=e}));var s=[0,31,28,31,30,31,30,31,31,30,31,30,31],h=[s,s.slice()];function l(e,t){return e-t*Math.floor(e/t)}function f(e,t){return Math.floor(e/t)}function y(e){return!(e%4||!(e%100)&&e%400)}function v(e){return"object"===o(e)&&Date.prototype===e.__proto__}function d(e){if(!v(e))throw new TypeError("Argument not a Date: ".concat(e));return m(e.getFullYear(),e.getMonth()+1,e.getDate())}function m(e,t,r){var n=e-1;return 365*n+f(n,4)-f(n,100)+f(n,400)+f(367*t-362,12)+(t<=2?0:y(e)?-1:-2)+r}function g(e){if("number"!=typeof e)throw new TypeError("Argument not a Number: ".concat(e));var t=function(e){var t=e-1,r=f(t,146097),n=l(t,146097),a=f(n,36524),o=l(n,36524),i=f(o,1461),u=f(l(o,1461),365),c=400*r+100*a+4*i+u;return 4!=a&&4!=u?c+1:c}(e=Math.trunc(e)),r=f(12*(e-m(t,1,1)+(e<m(t,3,1)?0:y(t)?1:2))+373,367),n=e-m(t,r,1)+1,a=new Date(t,r-1,n);return t<100&&t>=0&&a.setFullYear(t),a}h[1][2]=29;var w={monthNames:["","January","February","March","April","May","June","July","August","September","October","November","December"],isLeapYear:y,daysInMonth:function(e,t){return h[+y(t)][e]},isDate:v,dayOfYear:function(e){if(!v(e))throw new TypeError("Argument not a Date: ".concat(e));var t=e.getMonth(),r=e.getDate()+31*t;return t>1&&(r-=Math.floor((4*(t+1)+23)/10),y(e.getFullYear())&&r++),r},greg2abs:d,abs2greg:g},b={headers:{"plural-forms":"nplurals=2; plural=(n!=1);"},contexts:{"":{}}},p={h:"he",a:"ashkenazi",s:"en","":"en"},k=Object.create(null),I=null,A=null,E=function(){function e(){i(this,e)}return c(e,null,[{key:"lookupTranslation",value:function(e,t){var r=t&&t.toLowerCase(),n=("string"==typeof t&&k[r]||I)[e];if(n&&n.length&&n[0].length)return n[0]}},{key:"gettext",value:function(e,t){var r=this.lookupTranslation(e,t);return void 0===r?e:r}},{key:"addLocale",value:function(e,t){if("string"!=typeof e)throw new TypeError("Invalid locale name: ".concat(e));if("object"!==o(t.contexts)||"object"!==o(t.contexts[""]))throw new TypeError("Locale '".concat(e,"' invalid compact format"));k[e.toLowerCase()]=t.contexts[""]}},{key:"addTranslation",value:function(e,t,r){if("string"!=typeof e)throw new TypeError("Invalid locale name: ".concat(e));var n=e.toLowerCase(),a=k[n];if(!a)throw new TypeError("Unknown locale: ".concat(e));if("string"!=typeof t||0===t.length)throw new TypeError("Invalid id: ".concat(t));var o=Array.isArray(r);if(o){var i=r[0];if("string"!=typeof i||0===i.length)throw new TypeError("Invalid translation array: ".concat(r))}else if("string"!=typeof r)throw new TypeError("Invalid translation: ".concat(r));a[t]=o?r:[r]}},{key:"addTranslations",value:function(e,t){if("string"!=typeof e)throw new TypeError("Invalid locale name: ".concat(e));var r=e.toLowerCase(),n=k[r];if(!n)throw new TypeError("Unknown locale: ".concat(e));if("object"!==o(t.contexts)||"object"!==o(t.contexts[""]))throw new TypeError("Locale '".concat(e,"' invalid compact format"));var a=t.contexts[""];Object.keys(a).forEach((function(e){n[e]=a[e]}))}},{key:"useLocale",value:function(e){var t=e.toLowerCase(),r=k[t];if(!r)throw new RangeError("Locale '".concat(e,"' not found"));return A=p[t]||t,I=r}},{key:"getLocaleName",value:function(){return A}},{key:"getLocaleNames",value:function(){return Object.keys(k).sort()}},{key:"ordinal",value:function(e,t){var r=t&&t.toLowerCase()||A;if(!r)return this.getEnOrdinal(e);switch(r){case"en":case"s":case"a":case"ashkenazi":case"ashkenazi_litvish":case"ashkenazi_poylish":case"ashkenazi_standard":return this.getEnOrdinal(e);case"es":return e+"º";case"h":case"he":case"he-x-nonikud":return String(e);default:return e+"."}}},{key:"getEnOrdinal",value:function(e){var t=["th","st","nd","rd"],r=e%100;return e+(t[(r-20)%10]||t[r]||t[0])}},{key:"hebrewStripNikkud",value:function(e){return e.replace(/[\u0590-\u05bd]/g,"").replace(/[\u05bf-\u05c7]/g,"")}}]),e}();E.addLocale("en",b),E.addLocale("s",b),E.addLocale("",b),E.useLocale("en");var T=1,N=2,D=4,M=6,S=7,L=8,Y=9,H=10,O=12,R=13,V={NISAN:1,IYYAR:2,SIVAN:3,TAMUZ:4,AV:5,ELUL:6,TISHREI:7,CHESHVAN:8,KISLEV:9,TEVET:10,SHVAT:11,ADAR_I:12,ADAR_II:13},x=["","Nisan","Iyyar","Sivan","Tamuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Sh'vat"],C=[x.concat(["Adar","Nisan"]),x.concat(["Adar I","Adar II","Nisan"])],F=Object.create(null),j=-1373428,_=365.24682220597794;function z(e,t){if("number"!=typeof e||isNaN(e))throw new TypeError("invalid parameter '".concat(t,"' not a number: ").concat(e))}function U(e,t,r){if(z(e,"year"),z(t,"month"),z(r,"day"),e<1)throw new RangeError("hebrew2abs: invalid year ".concat(e));var n=r;if(t<S){for(var a=S;a<=J(e);a++)n+=Z(a,e);for(var o=T;o<t;o++)n+=Z(o,e)}else for(var i=S;i<t;i++)n+=Z(i,e);return j+q(e)+n-1}function K(e){return j+q(e)}function B(e){if(z(e,"abs"),(e=Math.trunc(e))<=j)throw new RangeError("abs2hebrew: ".concat(e," is before epoch"));for(var t=Math.floor((e-j)/_);K(t)<=e;)++t;for(var r=e<U(--t,1,1)?7:1;e>U(t,r,Z(r,t));)++r;return{yy:t,mm:r,dd:1+e-U(t,r,1)}}function P(e){return(1+7*e)%19<7}function J(e){return 12+P(e)}function Z(e,t){switch(e){case N:case D:case M:case H:case R:return 29}return e===O&&!P(t)||e===L&&!Q(t)||e===Y&&W(t)?29:30}function $(e,t){if(z(e,"month"),z(t,"year"),e<1||e>14)throw new TypeError("bad month argument ".concat(e));return C[+P(t)][e]}function q(e){var t=F[e]=F[e]||function(e){var t=e-1,r=235*Math.floor(t/19)+t%19*12+Math.floor((t%19*7+1)/19),n=204+r%1080*793,a=5+12*r+793*Math.floor(r/1080)+Math.floor(n/1080),o=n%1080+a%24*1080,i=1+29*r+Math.floor(a/24),u=i+(o>=19440||2==i%7&&o>=9924&&!P(e)||1==i%7&&o>=16789&&P(t));return u+(u%7==0||u%7==3||u%7==5)}(e);return t}function G(e){return q(e+1)-q(e)}function Q(e){return G(e)%10==5}function W(e){return G(e)%10==3}function X(e){throw new TypeError(e)}var ee="day",te="week",re="month",ne="year",ae={d:ee,w:te,M:re,y:ne},oe={day:ee,week:te,month:re,year:ne},ie=function(){function e(t,r,n){if(i(this,e),2==arguments.length||arguments.length>3)throw new TypeError("HDate constructor requires 0, 1 or 3 arguments");if(3==arguments.length){if(this.day=this.month=1,n=parseInt(n,10),isNaN(n))throw new TypeError("HDate called with bad year argument: ".concat(n));if(this.year=n,this.setMonth(r),t=parseInt(t,10),isNaN(t))throw new TypeError("HDate called with bad day argument: ".concat(t));this.setDate(t)}else{void 0===t&&(t=new Date);var a="number"!=typeof t||isNaN(t)?v(t)?d(t):e.isHDate(t)?{dd:t.day,mm:t.month,yy:t.year}:X("HDate called with bad argument: ".concat(t)):t,o="number"==typeof a,u=o?B(a):a;this.day=u.dd,this.month=u.mm,this.year=u.yy,o&&(this.abs0=a)}}return c(e,[{key:"getFullYear",value:function(){return this.year}},{key:"isLeapYear",value:function(){return P(this.year)}},{key:"getMonth",value:function(){return this.month}},{key:"getTishreiMonth",value:function(){var e=J(this.getFullYear());return(this.getMonth()+e-6)%e||e}},{key:"daysInMonth",value:function(){return Z(this.getMonth(),this.getFullYear())}},{key:"getDate",value:function(){return this.day}},{key:"getDay",value:function(){return l(this.abs(),7)}},{key:"setFullYear",value:function(e){return this.year=e,ue(this),this}},{key:"setMonth",value:function(t){return this.month=e.monthNum(t),ue(this),this}},{key:"setDate",value:function(e){return this.day=e,ue(this),this}},{key:"greg",value:function(){return g(this.abs())}},{key:"abs",value:function(){return"number"!=typeof this.abs0&&(this.abs0=U(this.year,this.month,this.day)),this.abs0}},{key:"getMonthName",value:function(){return $(this.getMonth(),this.getFullYear())}},{key:"render",value:function(){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||E.getLocaleName(),n=this.getDate(),a=E.gettext(this.getMonthName(),r),o=E.ordinal(n,r),i=e.getDayOfTranslation(r),u="".concat(o).concat(i," ").concat(a);if(t){var c=this.getFullYear();return"".concat(u,", ").concat(c)}return u}},{key:"renderGematriya",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getDate(),r=e?"he-x-NoNikud":"he",n=E.gettext(this.getMonthName(),r),o=this.getFullYear();return a(t)+" "+n+" "+a(o)}},{key:"before",value:function(e){return se(e,this,-1)}},{key:"onOrBefore",value:function(e){return se(e,this,0)}},{key:"nearest",value:function(e){return se(e,this,3)}},{key:"onOrAfter",value:function(e){return se(e,this,6)}},{key:"after",value:function(e){return se(e,this,7)}},{key:"next",value:function(){return new e(this.abs()+1)}},{key:"prev",value:function(){return new e(this.abs()-1)}},{key:"add",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"d";if(!(t=parseInt(t,10)))return new e(this);if((r=e.standardizeUnits(r))===ee)return new e(this.abs()+t);if(r===te)return new e(this.abs()+7*t);if(r===ne)return new e(this.getDate(),this.getMonth(),this.getFullYear()+t);if(r===re){var n=new e(this),a=t>0?1:-1;t=Math.abs(t);for(var o=0;o<t;o++)n=new e(n.abs()+a*n.daysInMonth());return n}}},{key:"subtract",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"d";return this.add(-1*e,t)}},{key:"deltaDays",value:function(t){if(!e.isHDate(t))throw new TypeError("Bad argument: ".concat(t));return this.abs()-t.abs()}},{key:"isSameDate",value:function(t){return!!e.isHDate(t)&&(this.year==t.year&&this.month==t.month&&this.day==t.day)}},{key:"toString",value:function(){var e=this.getDate(),t=this.getFullYear(),r=this.getMonthName();return"".concat(e," ").concat(r," ").concat(t)}}],[{key:"hebrew2abs",value:function(e,t,r){return U(e,t,r)}},{key:"abs2hebrew",value:function(e){return B(e)}},{key:"getDayOfTranslation",value:function(e){switch(e){case"en":case"s":case"a":case"ashkenazi":return" of"}var t=E.lookupTranslation("of",e);return t?" "+t:"ashkenazi"===e.substring(0,9)?" of":""}},{key:"standardizeUnits",value:function(e){var t=ae[e]||String(e||"").toLowerCase().replace(/s$/,"");return oe[t]||X("Invalid units '".concat(e,"'"))}},{key:"isLeapYear",value:function(e){return P(e)}},{key:"monthsInYear",value:function(e){return J(e)}},{key:"daysInMonth",value:function(e,t){return Z(e,t)}},{key:"getMonthName",value:function(e,t){return $(e,t)}},{key:"monthNum",value:function(t){if("number"==typeof t){if(isNaN(t)||t>14)throw new RangeError("Invalid month number: ".concat(t));return t}return t.charCodeAt(0)>=48&&t.charCodeAt(0)<=57?parseInt(t,10):e.monthFromName(t)}},{key:"daysInYear",value:function(e){return G(e)}},{key:"longCheshvan",value:function(e){return Q(e)}},{key:"shortKislev",value:function(e){return W(e)}},{key:"monthFromName",value:function(e){if("number"==typeof e){if(isNaN(e)||e<1||e>14)throw new RangeError("Invalid month name: ".concat(e));return e}var t=E.hebrewStripNikkud(e).trim().toLowerCase();switch("ב"===t[0]&&(t=t.substring(1)),t[0]){case"n":case"נ":if("o"==t[1])break;return V.NISAN;case"i":return V.IYYAR;case"e":return V.ELUL;case"c":case"ח":return V.CHESHVAN;case"k":case"כ":return V.KISLEV;case"s":switch(t[1]){case"i":return V.SIVAN;case"h":return V.SHVAT}case"t":switch(t[1]){case"a":return V.TAMUZ;case"i":return V.TISHREI;case"e":return V.TEVET}break;case"a":switch(t[1]){case"v":return V.AV;case"d":return/(1|[^i]i|a|א)$/i.test(e)?V.ADAR_I:V.ADAR_II}break;case"ס":return V.SIVAN;case"ט":return V.TEVET;case"ש":return V.SHVAT;case"א":switch(t[1]){case"ב":return V.AV;case"ד":return/(1|[^i]i|a|א)$/i.test(e)?V.ADAR_I:V.ADAR_II;case"י":return V.IYYAR;case"ל":return V.ELUL}break;case"ת":switch(t[1]){case"מ":return V.TAMUZ;case"ש":return V.TISHREI}}throw new RangeError("Unable to parse month name: ".concat(e))}},{key:"dayOnOrBefore",value:function(e,t){return t-(t-e)%7}},{key:"isHDate",value:function(e){return null!==e&&"object"===o(e)&&"number"==typeof e.year&&"number"==typeof e.month&&"number"==typeof e.day&&"function"==typeof e.greg&&"function"==typeof e.abs}}]),e}();function ue(e){ce(e),function(e){e.day<1&&(e.month==V.TISHREI&&(e.year-=1),e.day+=Z(e.month,e.year),e.month-=1,ue(e));e.day>Z(e.month,e.year)&&(e.month===V.ELUL&&(e.year+=1),e.day-=Z(e.month,e.year),e.month+=1,ue(e));ce(e)}(e)}function ce(e){e.month!==V.ADAR_II||e.isLeapYear()?e.month<1?(e.month+=J(e.year),e.year-=1,ue(e)):e.month>J(e.year)&&(e.month-=J(e.year),e.year+=1,ue(e)):(e.month-=1,ue(e)),delete e.abs0}function se(e,t,r){return new ie(ie.dayOnOrBefore(e,t.abs()+r))}var he=V.NISAN,le=V.CHESHVAN,fe=V.KISLEV,ye=V.TEVET,ve=V.SHVAT,de=V.ADAR_I,me=V.ADAR_II;var ge={headers:{"plural-forms":"nplurals=2; plural=(n > 1);"},contexts:{"":{Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"]}}};E.addLocale("he",ge),E.addLocale("h",ge);var we=ge.contexts[""],be={};return Object.keys(we).forEach((function(e){be[e]=[E.hebrewStripNikkud(we[e][0])]})),E.addLocale("he-x-NoNikud",{headers:ge.headers,contexts:{"":be}}),e.HDate=ie,e.Locale=E,e.gematriya=a,e.getBirthdayOrAnniversary=function(e,t){var r=ie.isHDate(t)?t:new ie(t),n=r.getFullYear();if(e===n)return r;if(!(e<n)){var a=P(n),o=r.getMonth(),i=r.getDate();return o==de&&!a||o==me&&a?o=J(e):o!=le||30!=i||Q(e)?o==fe&&30==i&&W(e)?(o=ye,i=1):o==de&&30==i&&a&&!P(e)&&(o=he,i=1):(o=fe,i=1),new ie(i,o,e)}},e.getYahrzeit=function(e,t){var r=ie.isHDate(t)?t:new ie(t),n={yy:r.getFullYear(),mm:r.getMonth(),dd:r.getDate()};if(!(e<=n.yy))return n.mm!=le||30!=n.dd||Q(n.yy+1)?n.mm==fe&&30==n.dd&&W(n.yy+1)?n=B(U(e,ye,1)-1):n.mm==me?n.mm=J(e):n.mm!=de||30!=n.dd||P(e)||(n.dd=30,n.mm=ve):n=B(U(e,fe,1)-1),n.mm!=le||30!=n.dd||Q(e)?n.mm==fe&&30==n.dd&&W(e)&&(n.mm=ye,n.dd=1):(n.mm=fe,n.dd=1),new ie(n.dd,n.mm,e)},e.greg=w,e.months=V,e.version="4.2.0",e}({});
package/dist/hdate.js CHANGED
@@ -1,64 +1,37 @@
1
- /*! @hebcal/core v4.1.0 */
1
+ /*! @hebcal/core v4.2.0 */
2
2
  'use strict';
3
3
 
4
4
  const GERESH = '׳';
5
5
  const GERSHAYIM = '״';
6
-
7
- /**
8
- * @private
9
- * @param {number} num
10
- * @return {string}
11
- */
12
- function num2heb(num) {
13
- switch (num) {
14
- case 1:
15
- return 'א';
16
- case 2:
17
- return 'ב';
18
- case 3:
19
- return 'ג';
20
- case 4:
21
- return 'ד';
22
- case 5:
23
- return 'ה';
24
- case 6:
25
- return 'ו';
26
- case 7:
27
- return 'ז';
28
- case 8:
29
- return 'ח';
30
- case 9:
31
- return 'ט';
32
- case 10:
33
- return 'י';
34
- case 20:
35
- return 'כ';
36
- case 30:
37
- return 'ל';
38
- case 40:
39
- return 'מ';
40
- case 50:
41
- return 'נ';
42
- case 60:
43
- return 'ס';
44
- case 70:
45
- return 'ע';
46
- case 80:
47
- return 'פ';
48
- case 90:
49
- return 'צ';
50
- case 100:
51
- return 'ק';
52
- case 200:
53
- return 'ר';
54
- case 300:
55
- return 'ש';
56
- case 400:
57
- return 'ת';
58
- default:
59
- return '*INVALID*';
60
- }
61
- }
6
+ const heb2num = {
7
+ 'א': 1,
8
+ 'ב': 2,
9
+ 'ג': 3,
10
+ 'ד': 4,
11
+ 'ה': 5,
12
+ 'ו': 6,
13
+ 'ז': 7,
14
+ 'ח': 8,
15
+ 'ט': 9,
16
+ 'י': 10,
17
+ 'כ': 20,
18
+ 'ל': 30,
19
+ 'מ': 40,
20
+ 'נ': 50,
21
+ 'ס': 60,
22
+ 'ע': 70,
23
+ 'פ': 80,
24
+ 'צ': 90,
25
+ 'ק': 100,
26
+ 'ר': 200,
27
+ 'ש': 300,
28
+ 'ת': 400
29
+ };
30
+ const num2heb = {};
31
+ Object.keys(heb2num).forEach(key => {
32
+ const val = heb2num[key];
33
+ num2heb[val] = key;
34
+ });
62
35
 
63
36
  /**
64
37
  * @private
@@ -110,19 +83,19 @@ function gematriya(number) {
110
83
  if (thousands > 0 && thousands !== 5) {
111
84
  const tdigits = num2digits(thousands);
112
85
  for (let i = 0; i < tdigits.length; i++) {
113
- str += num2heb(tdigits[i]);
86
+ str += num2heb[tdigits[i]];
114
87
  }
115
88
  str += GERESH;
116
89
  }
117
90
  const digits = num2digits(num % 1000);
118
91
  if (digits.length == 1) {
119
- return str + num2heb(digits[0]) + GERESH;
92
+ return str + num2heb[digits[0]] + GERESH;
120
93
  }
121
94
  for (let i = 0; i < digits.length; i++) {
122
95
  if (i + 1 === digits.length) {
123
96
  str += GERSHAYIM;
124
97
  }
125
- str += num2heb(digits[i]);
98
+ str += num2heb[digits[i]];
126
99
  }
127
100
  return str;
128
101
  }
@@ -1085,7 +1058,7 @@ class HDate {
1085
1058
  /**
1086
1059
  * Sets the day of the month of the date. Returns the object it was called upon
1087
1060
  * @private
1088
- * @param {number} month
1061
+ * @param {number|string} month A number, or Hebrew month name string
1089
1062
  * @return {HDate}
1090
1063
  */
1091
1064
  setMonth(month) {
@@ -1522,7 +1495,10 @@ class HDate {
1522
1495
  }
1523
1496
  return monthName;
1524
1497
  }
1525
- const c = monthName.toLowerCase();
1498
+ let c = Locale.hebrewStripNikkud(monthName).trim().toLowerCase();
1499
+ if (c[0] === 'ב') {
1500
+ c = c.substring(1);
1501
+ }
1526
1502
  /*
1527
1503
  the Hebrew months are unique to their second letter
1528
1504
  N Nisan (November?)
@@ -1801,7 +1777,7 @@ function getBirthdayOrAnniversary_(hyear, gdate) {
1801
1777
  return new HDate(day, month, hyear);
1802
1778
  }
1803
1779
 
1804
- const version="4.1.0";
1780
+ const version="4.2.0";
1805
1781
 
1806
1782
  const headers={"plural-forms":"nplurals=2; plural=(n > 1);"};const contexts={"":{Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"]}};var poHeMin = {headers:headers,contexts:contexts};
1807
1783
 
package/dist/hdate.mjs CHANGED
@@ -1,39 +1,36 @@
1
- /*! @hebcal/core v4.1.0 */
1
+ /*! @hebcal/core v4.2.0 */
2
2
  const GERESH = '׳';
3
3
  const GERSHAYIM = '״';
4
4
 
5
- /**
6
- * @private
7
- * @param {number} num
8
- * @return {string}
9
- */
10
- function num2heb(num) {
11
- switch (num) {
12
- case 1: return 'א';
13
- case 2: return 'ב';
14
- case 3: return 'ג';
15
- case 4: return 'ד';
16
- case 5: return 'ה';
17
- case 6: return 'ו';
18
- case 7: return 'ז';
19
- case 8: return 'ח';
20
- case 9: return 'ט';
21
- case 10: return 'י';
22
- case 20: return 'כ';
23
- case 30: return 'ל';
24
- case 40: return 'מ';
25
- case 50: return 'נ';
26
- case 60: return 'ס';
27
- case 70: return 'ע';
28
- case 80: return 'פ';
29
- case 90: return 'צ';
30
- case 100: return 'ק';
31
- case 200: return 'ר';
32
- case 300: return 'ש';
33
- case 400: return 'ת';
34
- default: return '*INVALID*';
35
- }
36
- }
5
+ const heb2num = {
6
+ 'א': 1,
7
+ 'ב': 2,
8
+ 'ג': 3,
9
+ 'ד': 4,
10
+ 'ה': 5,
11
+ 'ו': 6,
12
+ 'ז': 7,
13
+ 'ח': 8,
14
+ 'ט': 9,
15
+ 'י': 10,
16
+ 'כ': 20,
17
+ 'ל': 30,
18
+ 'מ': 40,
19
+ 'נ': 50,
20
+ 'ס': 60,
21
+ 'ע': 70,
22
+ 'פ': 80,
23
+ 'צ': 90,
24
+ 'ק': 100,
25
+ 'ר': 200,
26
+ 'ש': 300,
27
+ 'ת': 400,
28
+ };
29
+ const num2heb = {};
30
+ Object.keys(heb2num).forEach((key) => {
31
+ const val = heb2num[key];
32
+ num2heb[val] = key;
33
+ });
37
34
 
38
35
  /**
39
36
  * @private
@@ -85,19 +82,19 @@ function gematriya(number) {
85
82
  if (thousands > 0 && thousands !== 5) {
86
83
  const tdigits = num2digits(thousands);
87
84
  for (let i = 0; i < tdigits.length; i++) {
88
- str += num2heb(tdigits[i]);
85
+ str += num2heb[tdigits[i]];
89
86
  }
90
87
  str += GERESH;
91
88
  }
92
89
  const digits = num2digits(num % 1000);
93
90
  if (digits.length == 1) {
94
- return str + num2heb(digits[0]) + GERESH;
91
+ return str + num2heb[digits[0]] + GERESH;
95
92
  }
96
93
  for (let i = 0; i < digits.length; i++) {
97
94
  if (i + 1 === digits.length) {
98
95
  str += GERSHAYIM;
99
96
  }
100
- str += num2heb(digits[i]);
97
+ str += num2heb[digits[i]];
101
98
  }
102
99
  return str;
103
100
  }
@@ -1114,7 +1111,7 @@ class HDate {
1114
1111
  /**
1115
1112
  * Sets the day of the month of the date. Returns the object it was called upon
1116
1113
  * @private
1117
- * @param {number} month
1114
+ * @param {number|string} month A number, or Hebrew month name string
1118
1115
  * @return {HDate}
1119
1116
  */
1120
1117
  setMonth(month) {
@@ -1554,7 +1551,10 @@ class HDate {
1554
1551
  }
1555
1552
  return monthName;
1556
1553
  }
1557
- const c = monthName.toLowerCase();
1554
+ let c = Locale.hebrewStripNikkud(monthName).trim().toLowerCase();
1555
+ if (c[0] === 'ב') {
1556
+ c = c.substring(1);
1557
+ }
1558
1558
  /*
1559
1559
  the Hebrew months are unique to their second letter
1560
1560
  N Nisan (November?)
@@ -1839,7 +1839,7 @@ function getBirthdayOrAnniversary_(hyear, gdate) {
1839
1839
  return new HDate(day, month, hyear);
1840
1840
  }
1841
1841
 
1842
- const version="4.1.0";
1842
+ const version="4.2.0";
1843
1843
 
1844
1844
  const headers={"plural-forms":"nplurals=2; plural=(n > 1);"};const contexts={"":{Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"]}};var poHeMin = {headers:headers,contexts:contexts};
1845
1845
 
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v4.1.0 */
1
+ /*! @hebcal/core v4.2.0 */
2
2
  var hebcal = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -1,2 +1,2 @@
1
- /*! @hebcal/core v4.1.0 */
1
+ /*! @hebcal/core v4.2.0 */
2
2
  var hebcal=function(r){"use strict";function n(r){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},n(r)}var t=[0,31,28,31,30,31,30,31,31,30,31,30,31];function e(r,n){return r-n*Math.floor(r/n)}function o(r,n){return Math.floor(r/n)}function a(r){return!(r%4||!(r%100)&&r%400)}function u(r,n,t){var e=r-1;return 365*e+o(e,4)-o(e,100)+o(e,400)+o(367*n-362,12)+(n<=2?0:a(r)?-1:-2)+t}[t,t.slice()][1][2]=29;var c=1,f=2,i=4,h=6,s=7,l=8,y=9,b=10,v=12,m=13,p=["","Nisan","Iyyar","Sivan","Tamuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Sh'vat"],w=[p.concat(["Adar","Nisan"]),p.concat(["Adar I","Adar II","Nisan"])],A=Object.create(null),I=-1373428;function g(r,n){if("number"!=typeof r||isNaN(r))throw new TypeError("invalid parameter '".concat(n,"' not a number: ").concat(r))}function M(r,n,t){if(g(r,"year"),g(n,"month"),g(t,"day"),r<1)throw new RangeError("hebrew2abs: invalid year ".concat(r));var e=t;if(n<s){for(var o=s;o<=d(r);o++)e+=T(o,r);for(var a=c;a<n;a++)e+=T(a,r)}else for(var u=s;u<n;u++)e+=T(u,r);return I+N(r)+e-1}function E(r){return I+N(r)}function S(r){return(1+7*r)%19<7}function d(r){return 12+S(r)}function T(r,n){switch(r){case f:case i:case h:case b:case m:return 29}return r===v&&!S(n)||r===l&&!D(n)||r===y&&R(n)?29:30}function N(r){var n=A[r]=A[r]||function(r){var n=r-1,t=235*Math.floor(n/19)+n%19*12+Math.floor((n%19*7+1)/19),e=204+t%1080*793,o=5+12*t+793*Math.floor(t/1080)+Math.floor(e/1080),a=e%1080+o%24*1080,u=1+29*t+Math.floor(o/24),c=u+(a>=19440||2==u%7&&a>=9924&&!S(r)||1==u%7&&a>=16789&&S(n));return c+(c%7==0||c%7==3||c%7==5)}(r);return n}function Y(r){return N(r+1)-N(r)}function D(r){return Y(r)%10==5}function R(r){return Y(r)%10==3}var V={abs2hebrew:function(r){if(g(r,"abs"),(r=Math.trunc(r))<=I)throw new RangeError("abs2hebrew: ".concat(r," is before epoch"));for(var n=Math.floor((r-I)/365.24682220597794);E(n)<=r;)++n;for(var t=r<M(--n,1,1)?7:1;r>M(n,t,T(t,n));)++t;return{yy:n,mm:t,dd:1+r-M(n,t,1)}},daysInMonth:T,daysInYear:Y,getMonthName:function(r,n){if(g(r,"month"),g(n,"year"),r<1||r>14)throw new TypeError("bad month argument ".concat(r));return w[+S(n)][r]},hebrew2abs:M,isLeapYear:S,longCheshvan:D,months:{NISAN:1,IYYAR:2,SIVAN:3,TAMUZ:4,AV:5,ELUL:6,TISHREI:7,CHESHVAN:8,KISLEV:9,TEVET:10,SHVAT:11,ADAR_I:12,ADAR_II:13},monthsInYear:d,shortKislev:R};return r.abs2greg=function(r){if("number"!=typeof r)throw new TypeError("Argument not a Number: ".concat(r));var n=function(r){var n=r-1,t=o(n,146097),a=e(n,146097),u=o(a,36524),c=e(a,36524),f=o(c,1461),i=o(e(c,1461),365),h=400*t+100*u+4*f+i;return 4!=u&&4!=i?h+1:h}(r=Math.trunc(r)),t=o(12*(r-u(n,1,1)+(r<u(n,3,1)?0:a(n)?1:2))+373,367),c=r-u(n,t,1)+1,f=new Date(n,t-1,c);return n<100&&n>=0&&f.setFullYear(n),f},r.greg2abs=function(r){if("object"!==n(t=r)||Date.prototype!==t.__proto__)throw new TypeError("Argument not a Date: ".concat(r));var t;return u(r.getFullYear(),r.getMonth()+1,r.getDate())},r.hdate=V,r}({});
package/dist/hdate0.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v4.1.0 */
1
+ /*! @hebcal/core v4.2.0 */
2
2
  /*
3
3
  * More minimal greg routines
4
4
  */