@hebcal/core 6.14.4 → 6.14.5
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 +7 -3
- package/dist/bundle.js.map +1 -1
- package/dist/bundle.min.js +3 -3
- package/dist/bundle.min.js.map +1 -1
- package/dist/esm/DailyLearning.js +1 -1
- package/dist/esm/HebrewDateEvent.js +1 -1
- package/dist/esm/HebrewDateEvent.js.map +1 -1
- package/dist/esm/HolidayEvent.d.ts +2 -1
- package/dist/esm/HolidayEvent.js +6 -2
- package/dist/esm/HolidayEvent.js.map +1 -1
- package/dist/esm/KiddushLevanaEvent.js +1 -1
- package/dist/esm/KiddushLevanaEvent.js.map +1 -1
- package/dist/esm/MevarchimChodeshEvent.js +1 -1
- package/dist/esm/MevarchimChodeshEvent.js.map +1 -1
- package/dist/esm/ParshaEvent.js +1 -1
- package/dist/esm/ParshaEvent.js.map +1 -1
- package/dist/esm/TimedEvent.js +1 -1
- package/dist/esm/TimedEvent.js.map +1 -1
- package/dist/esm/YomKippurKatanEvent.js +1 -1
- package/dist/esm/YomKippurKatanEvent.js.map +1 -1
- package/dist/esm/ashkenazi.po.js +1 -1
- package/dist/esm/calendar.js +1 -1
- package/dist/esm/candles.js +1 -1
- package/dist/esm/candles.js.map +1 -1
- package/dist/esm/cities.json.js +1 -1
- package/dist/esm/event.js +1 -1
- package/dist/esm/getStartAndEnd.js +1 -1
- package/dist/esm/hallel.js +1 -1
- package/dist/esm/he-x-NoNikud.po.js +1 -1
- package/dist/esm/he.po.js +1 -1
- package/dist/esm/hebcal.js +1 -1
- package/dist/esm/holidays.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/isAssurBemlacha.js +1 -1
- package/dist/esm/isAveilut.js +1 -1
- package/dist/esm/isFastDay.js +1 -1
- package/dist/esm/locale.js +1 -1
- package/dist/esm/location.js +1 -1
- package/dist/esm/location.js.map +1 -1
- package/dist/esm/modern.js +1 -1
- package/dist/esm/molad.js +1 -1
- package/dist/esm/molad.js.map +1 -1
- package/dist/esm/moladBase.js +1 -1
- package/dist/esm/moladDate.js +1 -1
- package/dist/esm/omer.js +1 -1
- package/dist/esm/omer.js.map +1 -1
- package/dist/esm/parshaName.js +1 -1
- package/dist/esm/parshaYear.js +1 -1
- package/dist/esm/pkgVersion.d.ts +1 -1
- package/dist/esm/pkgVersion.js +2 -2
- package/dist/esm/pkgVersion.js.map +1 -1
- package/dist/esm/reformatTimeStr.js +1 -1
- package/dist/esm/sedra.js +1 -1
- package/dist/esm/sefira.json.js +1 -1
- package/dist/esm/staticHolidays.js +1 -1
- package/dist/esm/string.js +1 -1
- package/dist/esm/tachanun.js +1 -1
- package/dist/esm/zenith.js +1 -1
- package/dist/esm/zmanim.js +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
const cals = new Map();
|
|
3
3
|
/**
|
|
4
4
|
* Plug-in registry for daily learning calendars such as Daf Yomi (Bavli),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { Locale, gematriya, months } from '@hebcal/hdate';
|
|
3
3
|
import { Event, flags } from './event.js';
|
|
4
4
|
import './locale.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HebrewDateEvent.js","sources":["../../../src/HebrewDateEvent.ts"],"sourcesContent":["import {HDate, gematriya, months, Locale} from '@hebcal/hdate';\nimport {Event, flags} from './event.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\n/** Daily Hebrew date (\"11th of Sivan, 5780\") */\nexport class HebrewDateEvent extends Event {\n /**\n * @param date\n */\n constructor(date: HDate) {\n super(date, date.toString(), flags.HEBREW_DATE);\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n * @example\n * import {HDate, HebrewDateEvent, months} from '@hebcal/core';\n *\n * const hd = new HDate(15, months.CHESHVAN, 5769);\n * const ev = new HebrewDateEvent(hd);\n * console.log(ev.render('en')); // '15th of Cheshvan, 5769'\n * console.log(ev.render('he')); // 'ט״ו חֶשְׁוָן תשס״ט'\n */\n render(locale?: string): string {\n const locale1 = locale?.toLowerCase();\n const locale0 = locale1 ?? 'en';\n const hd = this.getDate();\n switch (locale0) {\n case 'h':\n case 'he':\n return hd.renderGematriya(false);\n case 'he-x-nonikud':\n return hd.renderGematriya(true);\n default:\n return hd.render(locale0, true);\n }\n }\n private renderBriefHebrew(locale: string): string {\n const hd = this.getDate();\n const dd = hd.getDate();\n const mm = Locale.gettext(hd.getMonthName(), locale);\n return `${gematriya(dd)} ${mm}`;\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n * @example\n * import {HDate, HebrewDateEvent, months} from '@hebcal/core';\n *\n * const hd = new HDate(15, months.CHESHVAN, 5769);\n * const ev = new HebrewDateEvent(hd);\n * console.log(ev.renderBrief()); // '15th of Cheshvan'\n * console.log(ev.renderBrief('he')); // 'ט״ו חֶשְׁוָן'\n */\n renderBrief(locale?: string): string {\n const locale1 = locale?.toLowerCase();\n const locale0 = locale1 ?? 'en';\n const hd = this.getDate();\n if (hd.getMonth() === months.TISHREI && hd.getDate() === 1) {\n return this.render(locale0);\n }\n switch (locale0) {\n case 'h':\n case 'he':\n case 'he-x-nonikud':\n return this.renderBriefHebrew(locale0);\n default:\n return hd.render(locale0, false);\n }\n }\n}\n"],"names":[],"mappings":";;;;;AAIA;AACM,MAAO,eAAgB,SAAQ,KAAK,CAAA;AACxC;;AAEG;AACH,IAAA,WAAA,CAAY,IAAW,EAAA;AACrB,QAAA,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC;IACjD;AACA;;;;;;;;;AASG;
|
|
1
|
+
{"version":3,"file":"HebrewDateEvent.js","sources":["../../../src/HebrewDateEvent.ts"],"sourcesContent":["import {HDate, gematriya, months, Locale} from '@hebcal/hdate';\nimport {Event, flags} from './event.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\n/** Daily Hebrew date (\"11th of Sivan, 5780\") */\nexport class HebrewDateEvent extends Event {\n /**\n * @param date\n */\n constructor(date: HDate) {\n super(date, date.toString(), flags.HEBREW_DATE);\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n * @example\n * import {HDate, HebrewDateEvent, months} from '@hebcal/core';\n *\n * const hd = new HDate(15, months.CHESHVAN, 5769);\n * const ev = new HebrewDateEvent(hd);\n * console.log(ev.render('en')); // '15th of Cheshvan, 5769'\n * console.log(ev.render('he')); // 'ט״ו חֶשְׁוָן תשס״ט'\n */\n override render(locale?: string): string {\n const locale1 = locale?.toLowerCase();\n const locale0 = locale1 ?? 'en';\n const hd = this.getDate();\n switch (locale0) {\n case 'h':\n case 'he':\n return hd.renderGematriya(false);\n case 'he-x-nonikud':\n return hd.renderGematriya(true);\n default:\n return hd.render(locale0, true);\n }\n }\n private renderBriefHebrew(locale: string): string {\n const hd = this.getDate();\n const dd = hd.getDate();\n const mm = Locale.gettext(hd.getMonthName(), locale);\n return `${gematriya(dd)} ${mm}`;\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n * @example\n * import {HDate, HebrewDateEvent, months} from '@hebcal/core';\n *\n * const hd = new HDate(15, months.CHESHVAN, 5769);\n * const ev = new HebrewDateEvent(hd);\n * console.log(ev.renderBrief()); // '15th of Cheshvan'\n * console.log(ev.renderBrief('he')); // 'ט״ו חֶשְׁוָן'\n */\n override renderBrief(locale?: string): string {\n const locale1 = locale?.toLowerCase();\n const locale0 = locale1 ?? 'en';\n const hd = this.getDate();\n if (hd.getMonth() === months.TISHREI && hd.getDate() === 1) {\n return this.render(locale0);\n }\n switch (locale0) {\n case 'h':\n case 'he':\n case 'he-x-nonikud':\n return this.renderBriefHebrew(locale0);\n default:\n return hd.render(locale0, false);\n }\n }\n}\n"],"names":[],"mappings":";;;;;AAIA;AACM,MAAO,eAAgB,SAAQ,KAAK,CAAA;AACxC;;AAEG;AACH,IAAA,WAAA,CAAY,IAAW,EAAA;AACrB,QAAA,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC;IACjD;AACA;;;;;;;;;AASG;AACM,IAAA,MAAM,CAAC,MAAe,EAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,WAAW,EAAE;AACrC,QAAA,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI;AAC/B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;QACzB,QAAQ,OAAO;AACb,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;AAClC,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;AACjC,YAAA;gBACE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;;IAErC;AACQ,IAAA,iBAAiB,CAAC,MAAc,EAAA;AACtC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACzB,QAAA,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;AACvB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC;QACpD,OAAO,CAAA,EAAG,SAAS,CAAC,EAAE,CAAC,CAAA,CAAA,EAAI,EAAE,EAAE;IACjC;AACA;;;;;;;;;AASG;AACM,IAAA,WAAW,CAAC,MAAe,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,WAAW,EAAE;AACrC,QAAA,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI;AAC/B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;AAC1D,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B;QACA,QAAQ,OAAO;AACb,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;AACxC,YAAA;gBACE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;;IAEtC;AACD;;"}
|
|
@@ -44,7 +44,8 @@ export declare class HolidayEvent extends Event {
|
|
|
44
44
|
/**
|
|
45
45
|
* Returns a `https://www.hebcal.com/holidays/...` URL for more detail on
|
|
46
46
|
* this holiday. Israel-only holidays get an `?i=on` query parameter.
|
|
47
|
-
* Returns `undefined` for years outside `[100, 2999]
|
|
47
|
+
* Returns `undefined` for years outside `[100, 2999]` and for
|
|
48
|
+
* Ta'anit BeHaB, which has no holiday page.
|
|
48
49
|
*/
|
|
49
50
|
url(): string | undefined;
|
|
50
51
|
/**
|
package/dist/esm/HolidayEvent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { isoDateString, Locale } from '@hebcal/hdate';
|
|
3
3
|
import { Event, flags } from './event.js';
|
|
4
4
|
import { holidayDesc } from './staticHolidays.js';
|
|
@@ -63,9 +63,13 @@ class HolidayEvent extends Event {
|
|
|
63
63
|
/**
|
|
64
64
|
* Returns a `https://www.hebcal.com/holidays/...` URL for more detail on
|
|
65
65
|
* this holiday. Israel-only holidays get an `?i=on` query parameter.
|
|
66
|
-
* Returns `undefined` for years outside `[100, 2999]
|
|
66
|
+
* Returns `undefined` for years outside `[100, 2999]` and for
|
|
67
|
+
* Ta'anit BeHaB, which has no holiday page.
|
|
67
68
|
*/
|
|
68
69
|
url() {
|
|
70
|
+
if (this.hasFlag('BEHAB')) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
69
73
|
const year = this.greg().getFullYear();
|
|
70
74
|
if (year < 100 || year > 2999) {
|
|
71
75
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HolidayEvent.js","sources":["../../../src/HolidayEvent.ts"],"sourcesContent":["import {HDate, Locale, isoDateString} from '@hebcal/hdate';\nimport {Event, flags} from './event.js';\nimport {holidayDesc as hdesc} from './staticHolidays.js';\nimport {smartApostrophe, urlFriendly} from './string.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\n/**\n * Represents a built-in holiday like Pesach, Purim or Tu BiShvat.\n *\n * Most holiday-related events emitted by {@link calendar}\n * are instances of `HolidayEvent` or one of its subclasses\n * ({@link ChanukahEvent}, {@link AsaraBTevetEvent},\n * {@link RoshHashanaEvent}, {@link RoshChodeshEvent}).\n *\n * Adds two notable behaviors over the base {@link Event}:\n *\n * - {@link HolidayEvent.basename} strips qualifiers like `Erev `, ` I`/`II`,\n * `(CH''M)`, `(observed)`, candle counts, etc. (e.g. `\"Erev Pesach\"` →\n * `\"Pesach\"`).\n * - {@link HolidayEvent.url} returns a `https://www.hebcal.com/holidays/...`\n * link for the holiday.\n */\nexport class HolidayEvent extends Event {\n /** During Sukkot or Pesach */\n readonly cholHaMoedDay?: number;\n /**\n * `true` if the fast day was postponed a day to avoid Shabbat.\n * - Tish'a B'Av postponed from the 9th to the 10th\n * - Tzom Tammuz postponed from the 17th to the 18th\n */\n readonly observed?: boolean;\n constructor(date: HDate, desc: string, mask = 0, attrs?: object) {\n super(date, desc, mask, attrs);\n if (typeof attrs === 'object' && attrs !== null) {\n Object.assign(this, attrs);\n }\n }\n\n /**\n * Returns a simplified (untranslated) name for this holiday, stripping\n * qualifiers so that related events group under one name.\n *\n * Strips trailing 4-digit years, `(CH''M)`, `(observed)`, `(Hoshana Raba)`,\n * Roman-numeral day numbers (` I`, ` II`, ...), Chanukah candle counts,\n * `: 8th Day`, and a leading `\"Erev \"`.\n * @example\n * // 'Erev Pesach' => 'Pesach'\n * // 'Sukkot III (CH''M)' => 'Sukkot'\n * // 'Chanukah: 5 Candles' => 'Chanukah'\n * // 'Rosh Hashana 5784' => 'Rosh Hashana'\n */\n basename(): string {\n return this.getDesc()\n .replace(/ \\d{4}$/, '')\n .replace(/ \\(CH''M\\)$/, '')\n .replace(/ \\(observed\\)$/, '')\n .replace(/ \\(Hoshana Raba\\)$/, '')\n .replace(/ [IV]+$/, '')\n .replace(/: \\d Candles?$/, '')\n .replace(/: 8th Day$/, '')\n .replace(/^Erev /, '');\n }\n\n /**\n * Returns a `https://www.hebcal.com/holidays/...` URL for more detail on\n * this holiday. Israel-only holidays get an `?i=on` query parameter.\n * Returns `undefined` for years outside `[100, 2999]`.\n */\n url(): string | undefined {\n const year = this.greg().getFullYear();\n if (year < 100 || year > 2999) {\n return undefined;\n }\n const url = `https://www.hebcal.com/holidays/${urlFriendly(this.basename())}-${this.urlDateSuffix()}`;\n return this.hasFlag('IL_ONLY') ? `${url}?i=on` : url;\n }\n\n /**\n * The date portion of {@link url}. For most holidays this is just the\n * Gregorian year; subclasses override it when a year alone is ambiguous.\n */\n urlDateSuffix(): string {\n return String(this.greg().getFullYear());\n }\n\n getEmoji(): string {\n if (this.emoji) {\n return this.emoji;\n }\n if (this.hasFlag('SPECIAL_SHABBAT')) {\n return '🕍';\n }\n return '✡️';\n }\n\n getCategories(): string[] {\n if (this.cholHaMoedDay) {\n return ['holiday', 'major', 'cholhamoed'];\n }\n const cats = super.getCategories();\n if (cats[0] !== 'unknown') {\n return cats;\n }\n // Don't depend on flags.MINOR_HOLIDAY always being set. Look for minor holidays.\n const desc = this.getDesc();\n switch (desc) {\n case hdesc.LAG_BAOMER:\n case hdesc.LEIL_SELICHOT:\n case hdesc.PESACH_SHENI:\n case hdesc.EREV_PURIM:\n case hdesc.PURIM_KATAN:\n case hdesc.SHUSHAN_PURIM:\n case hdesc.TU_BAV:\n case hdesc.TU_BISHVAT:\n case hdesc.ROSH_HASHANA_LABEHEMOT:\n return ['holiday', 'minor'];\n }\n\n return ['holiday', 'major'];\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n const str = super.render(locale);\n return smartApostrophe(str);\n }\n /**\n * Returns a brief (translated) description of this event.\n * For most events, this is the same as render(). For some events, it procudes\n * a shorter text (e.g. without a time or added description).\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n const str = super.renderBrief(locale);\n return smartApostrophe(str);\n }\n}\n\n/**\n * Because Asara B'Tevet often occurs twice in the same Gregorian year,\n * we subclass HolidayEvent to generate the correct URL.\n */\nexport class AsaraBTevetEvent extends HolidayEvent {\n /** Full `YYYYMMDD` date, since the Gregorian year alone is ambiguous here */\n urlDateSuffix(): string {\n const isoDate = isoDateString(this.greg());\n return isoDate.replaceAll('-', '');\n }\n}\n\nconst chanukahEmoji = '🕎';\nconst KEYCAP_DIGITS = [\n '0️⃣',\n '1️⃣',\n '2️⃣',\n '3️⃣',\n '4️⃣',\n '5️⃣',\n '6️⃣',\n '7️⃣',\n '8️⃣',\n '9️⃣',\n] as const;\n\n/**\n * Because Chanukah sometimes starts in December and ends in January,\n * we subclass HolidayEvent to generate the correct URL.\n */\nexport class ChanukahEvent extends HolidayEvent {\n readonly chanukahDay?: number;\n /**\n * @param chanukahDay should be undefined for 1st night of Chanukah\n */\n constructor(date: HDate, desc: string, mask: number, chanukahDay?: number) {\n super(date, desc, mask);\n this.chanukahDay = chanukahDay;\n this.emoji = chanukahEmoji;\n if (chanukahDay !== 8) {\n const candles = chanukahDay ? chanukahDay + 1 : 1;\n this.emoji += KEYCAP_DIGITS[candles];\n }\n }\n urlDateSuffix(): string {\n const dt = this.greg();\n let year = dt.getFullYear();\n if (dt.getMonth() === 0) {\n year--;\n }\n return String(year);\n }\n}\n\n/** Represents Rosh Hashana, the Jewish New Year */\nexport class RoshHashanaEvent extends HolidayEvent {\n private readonly hyear: number;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param date Hebrew date event occurs\n * @param hyear Hebrew year\n * @param mask optional holiday flags\n */\n constructor(date: HDate, hyear: number, mask: number) {\n super(date, `Rosh Hashana ${hyear}`, mask);\n this.hyear = hyear;\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n return `${Locale.gettext('Rosh Hashana', locale)} ${this.hyear}`;\n }\n\n getEmoji(): string {\n return '🍏🍯';\n }\n}\n\nconst roshChodeshStr = 'Rosh Chodesh';\n\n/** Represents Rosh Chodesh, the beginning of a new month */\nexport class RoshChodeshEvent extends HolidayEvent {\n /**\n * Constructs Rosh Chodesh event\n * @param date Hebrew date event occurs\n * @param monthName Hebrew month name (not translated)\n */\n constructor(date: HDate, monthName: string) {\n super(date, `${roshChodeshStr} ${monthName}`, flags.ROSH_CHODESH);\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n const monthName = this.getDesc().substring(roshChodeshStr.length + 1);\n const monthName0 = Locale.gettext(monthName, locale);\n const monthName1 = smartApostrophe(monthName0);\n return `${Locale.gettext(roshChodeshStr, locale)} ${monthName1}`;\n }\n\n basename(): string {\n return this.getDesc();\n }\n\n getEmoji(): string {\n return this.emoji || '🌒';\n }\n}\n"],"names":["hdesc"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HolidayEvent.js","sources":["../../../src/HolidayEvent.ts"],"sourcesContent":["import {HDate, Locale, isoDateString} from '@hebcal/hdate';\nimport {Event, flags} from './event.js';\nimport {holidayDesc as hdesc} from './staticHolidays.js';\nimport {smartApostrophe, urlFriendly} from './string.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\n/**\n * Represents a built-in holiday like Pesach, Purim or Tu BiShvat.\n *\n * Most holiday-related events emitted by {@link calendar}\n * are instances of `HolidayEvent` or one of its subclasses\n * ({@link ChanukahEvent}, {@link AsaraBTevetEvent},\n * {@link RoshHashanaEvent}, {@link RoshChodeshEvent}).\n *\n * Adds two notable behaviors over the base {@link Event}:\n *\n * - {@link HolidayEvent.basename} strips qualifiers like `Erev `, ` I`/`II`,\n * `(CH''M)`, `(observed)`, candle counts, etc. (e.g. `\"Erev Pesach\"` →\n * `\"Pesach\"`).\n * - {@link HolidayEvent.url} returns a `https://www.hebcal.com/holidays/...`\n * link for the holiday.\n */\nexport class HolidayEvent extends Event {\n /** During Sukkot or Pesach */\n readonly cholHaMoedDay?: number;\n /**\n * `true` if the fast day was postponed a day to avoid Shabbat.\n * - Tish'a B'Av postponed from the 9th to the 10th\n * - Tzom Tammuz postponed from the 17th to the 18th\n */\n readonly observed?: boolean;\n constructor(date: HDate, desc: string, mask = 0, attrs?: object) {\n super(date, desc, mask, attrs);\n if (typeof attrs === 'object' && attrs !== null) {\n Object.assign(this, attrs);\n }\n }\n\n /**\n * Returns a simplified (untranslated) name for this holiday, stripping\n * qualifiers so that related events group under one name.\n *\n * Strips trailing 4-digit years, `(CH''M)`, `(observed)`, `(Hoshana Raba)`,\n * Roman-numeral day numbers (` I`, ` II`, ...), Chanukah candle counts,\n * `: 8th Day`, and a leading `\"Erev \"`.\n * @example\n * // 'Erev Pesach' => 'Pesach'\n * // 'Sukkot III (CH''M)' => 'Sukkot'\n * // 'Chanukah: 5 Candles' => 'Chanukah'\n * // 'Rosh Hashana 5784' => 'Rosh Hashana'\n */\n override basename(): string {\n return this.getDesc()\n .replace(/ \\d{4}$/, '')\n .replace(/ \\(CH''M\\)$/, '')\n .replace(/ \\(observed\\)$/, '')\n .replace(/ \\(Hoshana Raba\\)$/, '')\n .replace(/ [IV]+$/, '')\n .replace(/: \\d Candles?$/, '')\n .replace(/: 8th Day$/, '')\n .replace(/^Erev /, '');\n }\n\n /**\n * Returns a `https://www.hebcal.com/holidays/...` URL for more detail on\n * this holiday. Israel-only holidays get an `?i=on` query parameter.\n * Returns `undefined` for years outside `[100, 2999]` and for\n * Ta'anit BeHaB, which has no holiday page.\n */\n override url(): string | undefined {\n if (this.hasFlag('BEHAB')) {\n return undefined;\n }\n const year = this.greg().getFullYear();\n if (year < 100 || year > 2999) {\n return undefined;\n }\n const url = `https://www.hebcal.com/holidays/${urlFriendly(this.basename())}-${this.urlDateSuffix()}`;\n return this.hasFlag('IL_ONLY') ? `${url}?i=on` : url;\n }\n\n /**\n * The date portion of {@link url}. For most holidays this is just the\n * Gregorian year; subclasses override it when a year alone is ambiguous.\n */\n urlDateSuffix(): string {\n return String(this.greg().getFullYear());\n }\n\n override getEmoji(): string {\n if (this.emoji) {\n return this.emoji;\n }\n if (this.hasFlag('SPECIAL_SHABBAT')) {\n return '🕍';\n }\n return '✡️';\n }\n\n override getCategories(): string[] {\n if (this.cholHaMoedDay) {\n return ['holiday', 'major', 'cholhamoed'];\n }\n const cats = super.getCategories();\n if (cats[0] !== 'unknown') {\n return cats;\n }\n // Don't depend on flags.MINOR_HOLIDAY always being set. Look for minor holidays.\n const desc = this.getDesc();\n switch (desc) {\n case hdesc.LAG_BAOMER:\n case hdesc.LEIL_SELICHOT:\n case hdesc.PESACH_SHENI:\n case hdesc.EREV_PURIM:\n case hdesc.PURIM_KATAN:\n case hdesc.SHUSHAN_PURIM:\n case hdesc.TU_BAV:\n case hdesc.TU_BISHVAT:\n case hdesc.ROSH_HASHANA_LABEHEMOT:\n return ['holiday', 'minor'];\n }\n\n return ['holiday', 'major'];\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override render(locale?: string): string {\n const str = super.render(locale);\n return smartApostrophe(str);\n }\n /**\n * Returns a brief (translated) description of this event.\n * For most events, this is the same as render(). For some events, it procudes\n * a shorter text (e.g. without a time or added description).\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override renderBrief(locale?: string): string {\n const str = super.renderBrief(locale);\n return smartApostrophe(str);\n }\n}\n\n/**\n * Because Asara B'Tevet often occurs twice in the same Gregorian year,\n * we subclass HolidayEvent to generate the correct URL.\n */\nexport class AsaraBTevetEvent extends HolidayEvent {\n /** Full `YYYYMMDD` date, since the Gregorian year alone is ambiguous here */\n override urlDateSuffix(): string {\n const isoDate = isoDateString(this.greg());\n return isoDate.replaceAll('-', '');\n }\n}\n\nconst chanukahEmoji = '🕎';\nconst KEYCAP_DIGITS = [\n '0️⃣',\n '1️⃣',\n '2️⃣',\n '3️⃣',\n '4️⃣',\n '5️⃣',\n '6️⃣',\n '7️⃣',\n '8️⃣',\n '9️⃣',\n] as const;\n\n/**\n * Because Chanukah sometimes starts in December and ends in January,\n * we subclass HolidayEvent to generate the correct URL.\n */\nexport class ChanukahEvent extends HolidayEvent {\n readonly chanukahDay?: number;\n /**\n * @param chanukahDay should be undefined for 1st night of Chanukah\n */\n constructor(date: HDate, desc: string, mask: number, chanukahDay?: number) {\n super(date, desc, mask);\n this.chanukahDay = chanukahDay;\n this.emoji = chanukahEmoji;\n if (chanukahDay !== 8) {\n const candles = chanukahDay ? chanukahDay + 1 : 1;\n this.emoji += KEYCAP_DIGITS[candles];\n }\n }\n override urlDateSuffix(): string {\n const dt = this.greg();\n let year = dt.getFullYear();\n if (dt.getMonth() === 0) {\n year--;\n }\n return String(year);\n }\n}\n\n/** Represents Rosh Hashana, the Jewish New Year */\nexport class RoshHashanaEvent extends HolidayEvent {\n private readonly hyear: number;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param date Hebrew date event occurs\n * @param hyear Hebrew year\n * @param mask optional holiday flags\n */\n constructor(date: HDate, hyear: number, mask: number) {\n super(date, `Rosh Hashana ${hyear}`, mask);\n this.hyear = hyear;\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override render(locale?: string): string {\n return `${Locale.gettext('Rosh Hashana', locale)} ${this.hyear}`;\n }\n\n override getEmoji(): string {\n return '🍏🍯';\n }\n}\n\nconst roshChodeshStr = 'Rosh Chodesh';\n\n/** Represents Rosh Chodesh, the beginning of a new month */\nexport class RoshChodeshEvent extends HolidayEvent {\n /**\n * Constructs Rosh Chodesh event\n * @param date Hebrew date event occurs\n * @param monthName Hebrew month name (not translated)\n */\n constructor(date: HDate, monthName: string) {\n super(date, `${roshChodeshStr} ${monthName}`, flags.ROSH_CHODESH);\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override render(locale?: string): string {\n const monthName = this.getDesc().substring(roshChodeshStr.length + 1);\n const monthName0 = Locale.gettext(monthName, locale);\n const monthName1 = smartApostrophe(monthName0);\n return `${Locale.gettext(roshChodeshStr, locale)} ${monthName1}`;\n }\n\n override basename(): string {\n return this.getDesc();\n }\n\n override getEmoji(): string {\n return this.emoji || '🌒';\n }\n}\n"],"names":["hdesc"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import 'temporal-polyfill/global';
|
|
3
3
|
import { Locale, HDate } from '@hebcal/hdate';
|
|
4
4
|
import { flags } from './event.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KiddushLevanaEvent.js","sources":["../../../src/KiddushLevanaEvent.ts"],"sourcesContent":["import 'temporal-polyfill/global';\nimport {HDate, Locale} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions.js';\nimport {flags} from './event.js';\nimport {getHolidaysOnDate} from './holidays.js';\nimport {Location} from './location.js';\nimport {Molad} from './molad.js';\nimport {reformatTimeStr} from './reformatTimeStr.js';\nimport {TimedEvent} from './TimedEvent.js';\nimport {Zmanim} from './zmanim.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst LATEST_KIDDUSH_LEVANA = 'Latest Kiddush Levana';\n\n/**\n * The latest time to recite _Kiddush Levana_ (Sanctification of the Moon),\n * calculated as halfway between one _molad_ and the next, according to\n * the [Maharil](https://en.wikipedia.org/wiki/Yaakov_ben_Moshe_Levi_Moelin)\n * (14 days, 18 hours, 22 minutes and 1.666 seconds after the _molad_).\n *\n * Generated by {@link calendar} when `options.kiddushLevanaMaharil` is\n * `true` and `options.location` is provided:\n * - When the time falls during the day (between _alot hashachar_ 16.1° and\n * _tzeit_ 8.5°), it is moved back to _alot hashachar_ that morning, the\n * end of the last night on which Kiddush Levana can be said.\n * - When the time falls during Shabbat or a Yom Tov, it is moved back to\n * regular candle-lighting time before that Shabbat or Yom Tov.\n * - The time is rounded down to the minute, never up.\n *\n * The {@link memo} lists the unadjusted earliest (3 and 7 days after the\n * _molad_) and latest (Maharil and 15 days after the _molad_) times.\n */\nexport class KiddushLevanaEvent extends TimedEvent {\n /** The molad of the month this event belongs to */\n readonly molad: Molad;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param date Hebrew date the event occurs\n * @param eventTime latest time for Kiddush Levana, possibly adjusted\n * @param location geographic location used to format the time\n * @param molad the molad of the month\n * @param options optional; `locale` and `hour12` affect the formatted times\n */\n constructor(\n date: HDate,\n eventTime: Date,\n location: Location,\n molad: Molad,\n options?: CalOptions\n ) {\n super(\n date,\n LATEST_KIDDUSH_LEVANA,\n flags.KIDDUSH_LEVANA,\n eventTime,\n location,\n undefined,\n options\n );\n this.molad = molad;\n this.memo = makeMemo(molad, location, options);\n }\n\n getEmoji(): string {\n return '🌔';\n }\n\n getCategories(): string[] {\n return ['zmanim', 'kiddushLevana'];\n }\n}\n\nfunction toDate(zdt: Temporal.ZonedDateTime): Date {\n return new Date(zdt.epochMilliseconds);\n}\n\nfunction toZdt(dt: Date, tzid: string): Temporal.ZonedDateTime | null {\n const millis = dt.getTime();\n if (isNaN(millis)) {\n return null;\n }\n return Temporal.Instant.fromEpochMilliseconds(millis).toZonedDateTimeISO(tzid);\n}\n\nfunction floorMinute(zdt: Temporal.ZonedDateTime): Temporal.ZonedDateTime {\n return zdt.round({smallestUnit: 'minute', roundingMode: 'floor'});\n}\n\nfunction ceilMinute(zdt: Temporal.ZonedDateTime): Temporal.ZonedDateTime {\n return zdt.round({smallestUnit: 'minute', roundingMode: 'ceil'});\n}\n\nfunction makeMemo(molad: Molad, location: Location, options?: CalOptions): string {\n const tzid = location.getTzid();\n const locale = options?.locale;\n const times: [string, Temporal.ZonedDateTime][] = [\n [\n 'Earliest Kiddush Levana (3 days)',\n ceilMinute(molad.getTchilasZmanKidushLevana3Days()),\n ],\n [\n 'Earliest Kiddush Levana (7 days)',\n ceilMinute(molad.getTchilasZmanKidushLevana7Days()),\n ],\n [\n 'Latest Kiddush Levana (Maharil)',\n floorMinute(molad.getSofZmanKidushLevanaBetweenMoldos()),\n ],\n [\n 'Latest Kiddush Levana (15 days)',\n floorMinute(molad.getSofZmanKidushLevana15Days()),\n ],\n ];\n const dateFormat = new Intl.DateTimeFormat(intlLocale(locale), {\n timeZone: tzid,\n weekday: 'short',\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n });\n const timeFormat = location.getTimeFormatter();\n const opts = {...options, location};\n return times\n .map(([label, zdt]) => {\n const dt = toDate(zdt);\n const timeStr = reformatTimeStr(\n Zmanim.formatTime(dt, timeFormat),\n 'pm',\n opts\n );\n return `${Locale.gettext(label, locale)}: ${dateFormat.format(dt)}, ${timeStr}`;\n })\n .join('\\n');\n}\n\nfunction intlLocale(locale?: string): string {\n if (!locale || locale === 'en' || locale === 'ashkenazi') {\n return 'en-US';\n }\n if (Locale.isHebrewLocale(locale)) {\n return 'he-IL';\n }\n try {\n return Intl.DateTimeFormat.supportedLocalesOf(locale)[0] ?? 'en-US';\n } catch {\n return 'en-US';\n }\n}\n\nfunction isShabbatOrChag(hd: HDate, il: boolean): boolean {\n if (hd.getDay() === 6) {\n return true;\n }\n const events = getHolidaysOnDate(hd, il) ?? [];\n return events.some(ev => ev.hasFlag('CHAG'));\n}\n\n/**\n * Makes the \"Latest Kiddush Levana\" event for one Hebrew month, or\n * `undefined` if it can't be calculated (e.g. no sunrise or sunset).\n * The returned event's date may be earlier than the date of the\n * actual latest time, when that time falls on Shabbat or a Yom Tov.\n * @internal\n */\nexport function makeKiddushLevanaEvent(\n hyear: number,\n hmonth: number,\n options: CalOptions\n): KiddushLevanaEvent | undefined {\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const il = Boolean(options.il);\n const tzid = location.getTzid();\n // Find the civil date on which the Maharil's time falls.\n // Zmanim only computes this zman between the 11th and 16th of the month.\n for (let dd = 11; dd <= 16; dd++) {\n const hd = new HDate(dd, hmonth, hyear);\n const zmanim = new Zmanim(location, hd, useElevation);\n if (zmanim.getSofZmanKidushLevanaBetweenMoldos() === null) {\n continue;\n }\n // Move a daytime time back to alot hashachar that morning\n // Same tzeit (8.5°) as isAssurBemlacha()\n const alos = toZdt(zmanim.alotHaShachar(), tzid);\n const tzeit = toZdt(zmanim.tzeit(), tzid);\n const zdt = zmanim.getSofZmanKidushLevanaBetweenMoldos(alos, tzeit);\n if (zdt === null) {\n return undefined;\n }\n const molad = new Molad(hyear, hmonth);\n // After daytime adjustment the time is at night: before alot hashachar\n // it belongs to today's Hebrew date, after tzeit to tomorrow's.\n const nightOf = zdt.hour < 12 ? hd : hd.next();\n if (!isShabbatOrChag(nightOf, il)) {\n return new KiddushLevanaEvent(\n hd,\n toDate(floorMinute(zdt)),\n location,\n molad,\n options\n );\n }\n // Back up to candle-lighting time before the Shabbat or Yom Tov\n let first = nightOf;\n while (isShabbatOrChag(first.prev(), il)) {\n first = first.prev();\n }\n const erev = first.prev();\n const erevZmanim = new Zmanim(location, erev, useElevation);\n const candleLighting = erevZmanim.sunsetOffset(\n Number(options.candleLightingMins),\n true\n );\n if (isNaN(candleLighting.getTime())) {\n return undefined;\n }\n return new KiddushLevanaEvent(erev, candleLighting, location, molad, options);\n }\n return undefined;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KiddushLevanaEvent.js","sources":["../../../src/KiddushLevanaEvent.ts"],"sourcesContent":["import 'temporal-polyfill/global';\nimport {HDate, Locale} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions.js';\nimport {flags} from './event.js';\nimport {getHolidaysOnDate} from './holidays.js';\nimport {Location} from './location.js';\nimport {Molad} from './molad.js';\nimport {reformatTimeStr} from './reformatTimeStr.js';\nimport {TimedEvent} from './TimedEvent.js';\nimport {Zmanim} from './zmanim.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst LATEST_KIDDUSH_LEVANA = 'Latest Kiddush Levana';\n\n/**\n * The latest time to recite _Kiddush Levana_ (Sanctification of the Moon),\n * calculated as halfway between one _molad_ and the next, according to\n * the [Maharil](https://en.wikipedia.org/wiki/Yaakov_ben_Moshe_Levi_Moelin)\n * (14 days, 18 hours, 22 minutes and 1.666 seconds after the _molad_).\n *\n * Generated by {@link calendar} when `options.kiddushLevanaMaharil` is\n * `true` and `options.location` is provided:\n * - When the time falls during the day (between _alot hashachar_ 16.1° and\n * _tzeit_ 8.5°), it is moved back to _alot hashachar_ that morning, the\n * end of the last night on which Kiddush Levana can be said.\n * - When the time falls during Shabbat or a Yom Tov, it is moved back to\n * regular candle-lighting time before that Shabbat or Yom Tov.\n * - The time is rounded down to the minute, never up.\n *\n * The {@link memo} lists the unadjusted earliest (3 and 7 days after the\n * _molad_) and latest (Maharil and 15 days after the _molad_) times.\n */\nexport class KiddushLevanaEvent extends TimedEvent {\n /** The molad of the month this event belongs to */\n readonly molad: Molad;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param date Hebrew date the event occurs\n * @param eventTime latest time for Kiddush Levana, possibly adjusted\n * @param location geographic location used to format the time\n * @param molad the molad of the month\n * @param options optional; `locale` and `hour12` affect the formatted times\n */\n constructor(\n date: HDate,\n eventTime: Date,\n location: Location,\n molad: Molad,\n options?: CalOptions\n ) {\n super(\n date,\n LATEST_KIDDUSH_LEVANA,\n flags.KIDDUSH_LEVANA,\n eventTime,\n location,\n undefined,\n options\n );\n this.molad = molad;\n this.memo = makeMemo(molad, location, options);\n }\n\n override getEmoji(): string {\n return '🌔';\n }\n\n override getCategories(): string[] {\n return ['zmanim', 'kiddushLevana'];\n }\n}\n\nfunction toDate(zdt: Temporal.ZonedDateTime): Date {\n return new Date(zdt.epochMilliseconds);\n}\n\nfunction toZdt(dt: Date, tzid: string): Temporal.ZonedDateTime | null {\n const millis = dt.getTime();\n if (isNaN(millis)) {\n return null;\n }\n return Temporal.Instant.fromEpochMilliseconds(millis).toZonedDateTimeISO(tzid);\n}\n\nfunction floorMinute(zdt: Temporal.ZonedDateTime): Temporal.ZonedDateTime {\n return zdt.round({smallestUnit: 'minute', roundingMode: 'floor'});\n}\n\nfunction ceilMinute(zdt: Temporal.ZonedDateTime): Temporal.ZonedDateTime {\n return zdt.round({smallestUnit: 'minute', roundingMode: 'ceil'});\n}\n\nfunction makeMemo(molad: Molad, location: Location, options?: CalOptions): string {\n const tzid = location.getTzid();\n const locale = options?.locale;\n const times: [string, Temporal.ZonedDateTime][] = [\n [\n 'Earliest Kiddush Levana (3 days)',\n ceilMinute(molad.getTchilasZmanKidushLevana3Days()),\n ],\n [\n 'Earliest Kiddush Levana (7 days)',\n ceilMinute(molad.getTchilasZmanKidushLevana7Days()),\n ],\n [\n 'Latest Kiddush Levana (Maharil)',\n floorMinute(molad.getSofZmanKidushLevanaBetweenMoldos()),\n ],\n [\n 'Latest Kiddush Levana (15 days)',\n floorMinute(molad.getSofZmanKidushLevana15Days()),\n ],\n ];\n const dateFormat = new Intl.DateTimeFormat(intlLocale(locale), {\n timeZone: tzid,\n weekday: 'short',\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n });\n const timeFormat = location.getTimeFormatter();\n const opts = {...options, location};\n return times\n .map(([label, zdt]) => {\n const dt = toDate(zdt);\n const timeStr = reformatTimeStr(\n Zmanim.formatTime(dt, timeFormat),\n 'pm',\n opts\n );\n return `${Locale.gettext(label, locale)}: ${dateFormat.format(dt)}, ${timeStr}`;\n })\n .join('\\n');\n}\n\nfunction intlLocale(locale?: string): string {\n if (!locale || locale === 'en' || locale === 'ashkenazi') {\n return 'en-US';\n }\n if (Locale.isHebrewLocale(locale)) {\n return 'he-IL';\n }\n try {\n return Intl.DateTimeFormat.supportedLocalesOf(locale)[0] ?? 'en-US';\n } catch {\n return 'en-US';\n }\n}\n\nfunction isShabbatOrChag(hd: HDate, il: boolean): boolean {\n if (hd.getDay() === 6) {\n return true;\n }\n const events = getHolidaysOnDate(hd, il) ?? [];\n return events.some(ev => ev.hasFlag('CHAG'));\n}\n\n/**\n * Makes the \"Latest Kiddush Levana\" event for one Hebrew month, or\n * `undefined` if it can't be calculated (e.g. no sunrise or sunset).\n * The returned event's date may be earlier than the date of the\n * actual latest time, when that time falls on Shabbat or a Yom Tov.\n * @internal\n */\nexport function makeKiddushLevanaEvent(\n hyear: number,\n hmonth: number,\n options: CalOptions\n): KiddushLevanaEvent | undefined {\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const il = Boolean(options.il);\n const tzid = location.getTzid();\n // Find the civil date on which the Maharil's time falls.\n // Zmanim only computes this zman between the 11th and 16th of the month.\n for (let dd = 11; dd <= 16; dd++) {\n const hd = new HDate(dd, hmonth, hyear);\n const zmanim = new Zmanim(location, hd, useElevation);\n if (zmanim.getSofZmanKidushLevanaBetweenMoldos() === null) {\n continue;\n }\n // Move a daytime time back to alot hashachar that morning\n // Same tzeit (8.5°) as isAssurBemlacha()\n const alos = toZdt(zmanim.alotHaShachar(), tzid);\n const tzeit = toZdt(zmanim.tzeit(), tzid);\n const zdt = zmanim.getSofZmanKidushLevanaBetweenMoldos(alos, tzeit);\n if (zdt === null) {\n return undefined;\n }\n const molad = new Molad(hyear, hmonth);\n // After daytime adjustment the time is at night: before alot hashachar\n // it belongs to today's Hebrew date, after tzeit to tomorrow's.\n const nightOf = zdt.hour < 12 ? hd : hd.next();\n if (!isShabbatOrChag(nightOf, il)) {\n return new KiddushLevanaEvent(\n hd,\n toDate(floorMinute(zdt)),\n location,\n molad,\n options\n );\n }\n // Back up to candle-lighting time before the Shabbat or Yom Tov\n let first = nightOf;\n while (isShabbatOrChag(first.prev(), il)) {\n first = first.prev();\n }\n const erev = first.prev();\n const erevZmanim = new Zmanim(location, erev, useElevation);\n const candleLighting = erevZmanim.sunsetOffset(\n Number(options.candleLightingMins),\n true\n );\n if (isNaN(candleLighting.getTime())) {\n return undefined;\n }\n return new KiddushLevanaEvent(erev, candleLighting, location, molad, options);\n }\n return undefined;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { Locale, HDate, months } from '@hebcal/hdate';
|
|
3
3
|
import { Event, flags } from './event.js';
|
|
4
4
|
import { Molad } from './molad.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MevarchimChodeshEvent.js","sources":["../../../src/MevarchimChodeshEvent.ts"],"sourcesContent":["import {HDate, Locale, months} from '@hebcal/hdate';\nimport {Event, flags} from './event.js';\nimport {Molad} from './molad.js';\nimport {smartApostrophe} from './string.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst mevarchimChodeshStr = 'Shabbat Mevarchim Chodesh';\n\n/** Represents Mevarchim haChodesh, the announcement of the new month */\nexport class MevarchimChodeshEvent extends Event {\n readonly monthName: string;\n /**\n * Constructs Mevarchim haChodesh event\n * @param date Hebrew date event occurs\n * @param monthName Hebrew month name (not translated)\n * @param memo text for the event memo. When falsy, a memo announcing the\n * molad of the upcoming month is generated automatically\n * @param locale Optional locale name\n */\n constructor(date: HDate, monthName: string, memo: string, locale?: string) {\n super(date, `${mevarchimChodeshStr} ${monthName}`, flags.SHABBAT_MEVARCHIM);\n this.monthName = Locale.gettext(monthName, locale);\n if (memo) {\n this.memo = memo;\n } else {\n const hyear = date.getFullYear();\n const hmonth = date.getMonth();\n const monNext =\n hmonth === HDate.monthsInYear(hyear) ? months.NISAN : hmonth + 1;\n const molad = new Molad(hyear, monNext);\n this.memo = molad.render('en', {hour12: false});\n }\n }\n\n basename(): string {\n return this.getDesc();\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n const monthName0 = Locale.gettext(this.monthName, locale);\n const monthName = smartApostrophe(monthName0);\n return `${Locale.gettext(mevarchimChodeshStr, locale)} ${monthName}`;\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n const str = this.render(locale);\n const space = str.indexOf(' ');\n return str.substring(space + 1);\n }\n}\n"],"names":[],"mappings":";;;;;;;AAMA,MAAM,mBAAmB,GAAG,2BAA2B;AAEvD;AACM,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AACrC,IAAA,SAAS;AAClB;;;;;;;AAOG;AACH,IAAA,WAAA,CAAY,IAAW,EAAE,SAAiB,EAAE,IAAY,EAAE,MAAe,EAAA;AACvE,QAAA,KAAK,CAAC,IAAI,EAAE,CAAA,EAAG,mBAAmB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAC3E,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;QAClD,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAClB;aAAO;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC9B,MAAM,OAAO,GACX,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;AACvC,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;QACjD;IACF;
|
|
1
|
+
{"version":3,"file":"MevarchimChodeshEvent.js","sources":["../../../src/MevarchimChodeshEvent.ts"],"sourcesContent":["import {HDate, Locale, months} from '@hebcal/hdate';\nimport {Event, flags} from './event.js';\nimport {Molad} from './molad.js';\nimport {smartApostrophe} from './string.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst mevarchimChodeshStr = 'Shabbat Mevarchim Chodesh';\n\n/** Represents Mevarchim haChodesh, the announcement of the new month */\nexport class MevarchimChodeshEvent extends Event {\n readonly monthName: string;\n /**\n * Constructs Mevarchim haChodesh event\n * @param date Hebrew date event occurs\n * @param monthName Hebrew month name (not translated)\n * @param memo text for the event memo. When falsy, a memo announcing the\n * molad of the upcoming month is generated automatically\n * @param locale Optional locale name\n */\n constructor(date: HDate, monthName: string, memo: string, locale?: string) {\n super(date, `${mevarchimChodeshStr} ${monthName}`, flags.SHABBAT_MEVARCHIM);\n this.monthName = Locale.gettext(monthName, locale);\n if (memo) {\n this.memo = memo;\n } else {\n const hyear = date.getFullYear();\n const hmonth = date.getMonth();\n const monNext =\n hmonth === HDate.monthsInYear(hyear) ? months.NISAN : hmonth + 1;\n const molad = new Molad(hyear, monNext);\n this.memo = molad.render('en', {hour12: false});\n }\n }\n\n override basename(): string {\n return this.getDesc();\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override render(locale?: string): string {\n const monthName0 = Locale.gettext(this.monthName, locale);\n const monthName = smartApostrophe(monthName0);\n return `${Locale.gettext(mevarchimChodeshStr, locale)} ${monthName}`;\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override renderBrief(locale?: string): string {\n const str = this.render(locale);\n const space = str.indexOf(' ');\n return str.substring(space + 1);\n }\n}\n"],"names":[],"mappings":";;;;;;;AAMA,MAAM,mBAAmB,GAAG,2BAA2B;AAEvD;AACM,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AACrC,IAAA,SAAS;AAClB;;;;;;;AAOG;AACH,IAAA,WAAA,CAAY,IAAW,EAAE,SAAiB,EAAE,IAAY,EAAE,MAAe,EAAA;AACvE,QAAA,KAAK,CAAC,IAAI,EAAE,CAAA,EAAG,mBAAmB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAC3E,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;QAClD,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAClB;aAAO;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC9B,MAAM,OAAO,GACX,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;AACvC,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;QACjD;IACF;IAES,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;AACA;;;AAGG;AACM,IAAA,MAAM,CAAC,MAAe,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;AACzD,QAAA,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;AAC7C,QAAA,OAAO,CAAA,EAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE;IACtE;AACA;;;AAGG;AACM,IAAA,WAAW,CAAC,MAAe,EAAA;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QAC9B,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;IACjC;AACD;;"}
|
package/dist/esm/ParshaEvent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { Event, flags } from './event.js';
|
|
3
3
|
import { HDate, isoDateString } from '@hebcal/hdate';
|
|
4
4
|
import { renderParshaName } from './parshaName.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParshaEvent.js","sources":["../../../src/ParshaEvent.ts"],"sourcesContent":["import {Event, flags} from './event.js';\nimport {HDate, isoDateString} from '@hebcal/hdate';\nimport {renderParshaName} from './parshaName.js';\nimport {urlFriendly} from './string.js';\nimport {SedraResult} from './sedra.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\n/**\n * Represents one of 54 weekly Torah portions, always on a Saturday.\n *\n * `ParshaEvent` is for regular Parashat HaShavua readings. For Shabbatot\n * with holiday readings such as Shabbat Chol ha-Moed, use\n * `getHolidaysOnDate()` from `@hebcal/core`, or `getLeyningOnDate()` from\n * `@hebcal/leyning` when the display title and exact Torah readings are needed.\n */\nexport class ParshaEvent extends Event {\n /** The parsha name(s) and date this event was constructed from */\n readonly p: SedraResult;\n /**\n * Normally created by {@link calendar} (via `options.sedrot`)\n * rather than directly.\n * @param parsha result from {@link Sedra.lookup}\n * @throws {TypeError} if called with anything other than exactly one argument\n * @throws {TypeError} if `parsha` is not a valid {@link SedraResult} — it must\n * have an `HDate` and one or two parsha names\n */\n constructor(parsha: SedraResult) {\n // eslint-disable-next-line prefer-rest-params\n if (arguments.length !== 1) {\n throw new TypeError(\n `ParshaEvent constructor takes a single SedraResult argument; ` +\n `got ${arguments.length} arguments`\n );\n }\n if (\n typeof parsha !== 'object' ||\n parsha === null ||\n !Array.isArray(parsha.parsha) ||\n parsha.parsha.length === 0 ||\n parsha.parsha.length > 2 ||\n !HDate.isHDate(parsha.hdate)\n ) {\n throw new TypeError(\n `Invalid SedraResult argument: ${JSON.stringify(parsha)}`\n );\n }\n const desc = `Parashat ${parsha.parsha.join('-')}`;\n super(parsha.hdate, desc, flags.PARSHA_HASHAVUA);\n this.p = parsha;\n }\n /**\n * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to empty locale.\n */\n render(locale?: string): string {\n return renderParshaName(this.p.parsha, locale);\n }\n\n basename(): string {\n return this.p.parsha.join('-');\n }\n\n url(): string | undefined {\n const year = this.greg().getFullYear();\n if (year < 100 || year > 2999) {\n return undefined;\n }\n const dt = this.urlDateSuffix();\n const url = `https://www.hebcal.com/sedrot/${urlFriendly(this.basename())}-${dt}`;\n return this.p.il ? `${url}?i=on` : url;\n }\n\n /**\n * The date portion of {@link url}, as `YYYYMMDD` — a parsha name recurs every\n * year, so the full date is needed to identify the reading.\n */\n urlDateSuffix(): string {\n const isoDate = isoDateString(this.greg());\n return isoDate.replaceAll('-', '');\n }\n\n /** convenience function for compatibility with previous implementation */\n get parsha(): string[] {\n return this.p.parsha;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOA;;;;;;;AAOG;AACG,MAAO,WAAY,SAAQ,KAAK,CAAA;;AAE3B,IAAA,CAAC;AACV;;;;;;;AAOG;AACH,IAAA,WAAA,CAAY,MAAmB,EAAA;;AAE7B,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,MAAM,IAAI,SAAS,CACjB,CAAA,6DAAA,CAA+D;AAC7D,gBAAA,CAAA,IAAA,EAAO,SAAS,CAAC,MAAM,CAAA,UAAA,CAAY,CACtC;QACH;QACA,IACE,OAAO,MAAM,KAAK,QAAQ;AAC1B,YAAA,MAAM,KAAK,IAAI;AACf,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7B,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AAC1B,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5B;AACA,YAAA,MAAM,IAAI,SAAS,CACjB,CAAA,8BAAA,EAAiC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE,CAC1D;QACH;AACA,QAAA,MAAM,IAAI,GAAG,CAAA,SAAA,EAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE;QAClD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;AAChD,QAAA,IAAI,CAAC,CAAC,GAAG,MAAM;IACjB;AACA;;AAEG;
|
|
1
|
+
{"version":3,"file":"ParshaEvent.js","sources":["../../../src/ParshaEvent.ts"],"sourcesContent":["import {Event, flags} from './event.js';\nimport {HDate, isoDateString} from '@hebcal/hdate';\nimport {renderParshaName} from './parshaName.js';\nimport {urlFriendly} from './string.js';\nimport {SedraResult} from './sedra.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\n/**\n * Represents one of 54 weekly Torah portions, always on a Saturday.\n *\n * `ParshaEvent` is for regular Parashat HaShavua readings. For Shabbatot\n * with holiday readings such as Shabbat Chol ha-Moed, use\n * `getHolidaysOnDate()` from `@hebcal/core`, or `getLeyningOnDate()` from\n * `@hebcal/leyning` when the display title and exact Torah readings are needed.\n */\nexport class ParshaEvent extends Event {\n /** The parsha name(s) and date this event was constructed from */\n readonly p: SedraResult;\n /**\n * Normally created by {@link calendar} (via `options.sedrot`)\n * rather than directly.\n * @param parsha result from {@link Sedra.lookup}\n * @throws {TypeError} if called with anything other than exactly one argument\n * @throws {TypeError} if `parsha` is not a valid {@link SedraResult} — it must\n * have an `HDate` and one or two parsha names\n */\n constructor(parsha: SedraResult) {\n // eslint-disable-next-line prefer-rest-params\n if (arguments.length !== 1) {\n throw new TypeError(\n `ParshaEvent constructor takes a single SedraResult argument; ` +\n `got ${arguments.length} arguments`\n );\n }\n if (\n typeof parsha !== 'object' ||\n parsha === null ||\n !Array.isArray(parsha.parsha) ||\n parsha.parsha.length === 0 ||\n parsha.parsha.length > 2 ||\n !HDate.isHDate(parsha.hdate)\n ) {\n throw new TypeError(\n `Invalid SedraResult argument: ${JSON.stringify(parsha)}`\n );\n }\n const desc = `Parashat ${parsha.parsha.join('-')}`;\n super(parsha.hdate, desc, flags.PARSHA_HASHAVUA);\n this.p = parsha;\n }\n /**\n * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to empty locale.\n */\n override render(locale?: string): string {\n return renderParshaName(this.p.parsha, locale);\n }\n\n override basename(): string {\n return this.p.parsha.join('-');\n }\n\n override url(): string | undefined {\n const year = this.greg().getFullYear();\n if (year < 100 || year > 2999) {\n return undefined;\n }\n const dt = this.urlDateSuffix();\n const url = `https://www.hebcal.com/sedrot/${urlFriendly(this.basename())}-${dt}`;\n return this.p.il ? `${url}?i=on` : url;\n }\n\n /**\n * The date portion of {@link url}, as `YYYYMMDD` — a parsha name recurs every\n * year, so the full date is needed to identify the reading.\n */\n urlDateSuffix(): string {\n const isoDate = isoDateString(this.greg());\n return isoDate.replaceAll('-', '');\n }\n\n /** convenience function for compatibility with previous implementation */\n get parsha(): string[] {\n return this.p.parsha;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOA;;;;;;;AAOG;AACG,MAAO,WAAY,SAAQ,KAAK,CAAA;;AAE3B,IAAA,CAAC;AACV;;;;;;;AAOG;AACH,IAAA,WAAA,CAAY,MAAmB,EAAA;;AAE7B,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,MAAM,IAAI,SAAS,CACjB,CAAA,6DAAA,CAA+D;AAC7D,gBAAA,CAAA,IAAA,EAAO,SAAS,CAAC,MAAM,CAAA,UAAA,CAAY,CACtC;QACH;QACA,IACE,OAAO,MAAM,KAAK,QAAQ;AAC1B,YAAA,MAAM,KAAK,IAAI;AACf,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7B,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AAC1B,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5B;AACA,YAAA,MAAM,IAAI,SAAS,CACjB,CAAA,8BAAA,EAAiC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE,CAC1D;QACH;AACA,QAAA,MAAM,IAAI,GAAG,CAAA,SAAA,EAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE;QAClD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;AAChD,QAAA,IAAI,CAAC,CAAC,GAAG,MAAM;IACjB;AACA;;AAEG;AACM,IAAA,MAAM,CAAC,MAAe,EAAA;QAC7B,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC;IAChD;IAES,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC;IAES,GAAG,GAAA;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE;AAC7B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;AAC/B,QAAA,MAAM,GAAG,GAAG,CAAA,8BAAA,EAAiC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,EAAE,EAAE;AACjF,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA,EAAG,GAAG,CAAA,KAAA,CAAO,GAAG,GAAG;IACxC;AAEA;;;AAGG;IACH,aAAa,GAAA;QACX,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;IACpC;;AAGA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM;IACtB;AACD;;"}
|
package/dist/esm/TimedEvent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { Locale } from '@hebcal/hdate';
|
|
3
3
|
import { Event } from './event.js';
|
|
4
4
|
import { reformatTimeStr } from './reformatTimeStr.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimedEvent.js","sources":["../../../src/TimedEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions.js';\nimport {Location} from './location.js';\nimport {Event} from './event.js';\nimport {reformatTimeStr} from './reformatTimeStr.js';\nimport {Zmanim} from './zmanim.js';\nimport {holidayDesc as hdesc} from './staticHolidays.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst {HAVDALAH, CANDLE_LIGHTING} = hdesc;\n\n/**\n * Base class for events that have an associated wall-clock time and\n * geographic location — for example, candle lighting, havdalah, and\n * fast begin/end times.\n *\n * Stores both a `Date` (`eventTime`) and pre-formatted 24-hour\n * (`eventTimeStr`) and locale-aware (`fmtTime`) strings. May reference a\n * \"linked\" event such as the holiday whose candle-lighting time this\n * represents.\n */\nexport class TimedEvent extends Event {\n /** The exact moment of the event, rounded to the nearest minute */\n readonly eventTime: Date;\n /** Geographic location used to compute `eventTime` */\n readonly location: Location;\n /** 24-hour formatted time string in the location's timezone (e.g. `\"19:42\"`) */\n readonly eventTimeStr: string;\n /** Locale-aware formatted time string (e.g. `\"7:42pm\"` in US locale) */\n readonly fmtTime: string;\n /** Optional event this time is associated with (e.g. the Yom Tov being lit for) */\n readonly linkedEvent?: Event;\n /**\n * Optional length of the event in minutes. Not computed or validated by\n * this class; it's a plain count of minutes for downstream renderers\n * (e.g. `@hebcal/icalendar`) to add to the event's start wall-clock time\n * when producing a non-zero-duration `DTEND`. Undefined means no\n * duration was specified.\n */\n duration?: number;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param date Hebrew date the event occurs\n * @param desc Description (not translated)\n * @param mask optional holiday flags\n * @param eventTime the exact moment of the event\n * @param location geographic location used to format the time\n * @param linkedEvent optional event this time is associated with\n * @param options optional; `locale` and `hour12` affect {@link fmtTime}\n */\n constructor(\n date: HDate,\n desc: string,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, desc, mask);\n this.eventTime = Zmanim.roundTime(eventTime);\n this.location = location;\n const timeFormat = location.getTimeFormatter();\n this.eventTimeStr = Zmanim.formatTime(this.eventTime, timeFormat);\n const opts = {...options, location};\n this.fmtTime = reformatTimeStr(this.eventTimeStr, 'pm', opts);\n if (linkedEvent !== undefined) {\n this.linkedEvent = linkedEvent;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n return `${Locale.gettext(this.getDesc(), locale)}: ${this.fmtTime}`;\n }\n /**\n * Returns translation of \"Candle lighting\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n return Locale.gettext(this.getDesc(), locale);\n }\n\n getCategories(): string[] {\n const desc = this.getDesc();\n switch (desc) {\n // LIGHT_CANDLES or LIGHT_CANDLES_TZEIS\n case CANDLE_LIGHTING:\n return ['candles'];\n // YOM_TOV_ENDS\n case HAVDALAH:\n return ['havdalah'];\n // flags.MINOR_FAST or flags.MAJOR_FAST\n case hdesc.FAST_BEGINS:\n case hdesc.FAST_ENDS:\n return ['zmanim', 'fast'];\n case hdesc.SOF_ZMAN_ACHILAT_CHAMETZ:\n return ['zmanim', 'achilasChametz'];\n case hdesc.BIUR_CHAMETZ:\n return ['zmanim', 'biurChametz'];\n }\n /* NOTREACHED */\n return ['unknown'];\n }\n}\n\n/**\n * Candle-lighting event for the eve of Shabbat or a Yom Tov.\n *\n * Generated by {@link calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default candle lighting\n * occurs 18 minutes before sundown in the Diaspora and 20 minutes before\n * sundown in Israel (40 minutes in Jerusalem; 30 minutes in Haifa and\n * Zikhron Ya'akov), configurable via `options.candleLightingMins`.\n */\nexport class CandleLightingEvent extends TimedEvent {\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, CANDLE_LIGHTING, mask, eventTime, location, linkedEvent, options);\n }\n\n getEmoji(): string {\n return '🕯️';\n }\n}\n\n/**\n * Havdalah event marking the end of Shabbat or a Yom Tov.\n *\n * Generated by {@link calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default Havdalah is\n * calculated by *tzeit hakochavim* (8.5° solar depression); pass\n * `options.havdalahMins` to use a fixed minute offset instead, or\n * `options.havdalahDeg` to use a different degree.\n */\nexport class HavdalahEvent extends TimedEvent {\n private readonly havdalahMins?: number;\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n havdalahMins?: number,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, HAVDALAH, mask, eventTime, location, linkedEvent, options);\n if (havdalahMins) {\n this.havdalahMins = havdalahMins;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n return `${this.renderBrief(locale)}: ${this.fmtTime}`;\n }\n /**\n * Returns translation of \"Havdalah\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n let str = Locale.gettext(this.getDesc(), locale);\n if (this.havdalahMins) {\n const min = Locale.gettext('min', locale);\n str += ` (${this.havdalahMins} ${min})`;\n }\n return str;\n }\n\n getEmoji(): string {\n return '✨';\n }\n}\n"],"names":["hdesc"],"mappings":";;;;;;;;AASA,MAAM,EAAC,QAAQ,EAAE,eAAe,EAAC,GAAGA,WAAK;AAEzC;;;;;;;;;AASG;AACG,MAAO,UAAW,SAAQ,KAAK,CAAA;;AAE1B,IAAA,SAAS;;AAET,IAAA,QAAQ;;AAER,IAAA,YAAY;;AAEZ,IAAA,OAAO;;AAEP,IAAA,WAAW;AACpB;;;;;;AAMG;AACH,IAAA,QAAQ;AACR;;;;;;;;;AASG;AACH,IAAA,WAAA,CACE,IAAW,EACX,IAAY,EACZ,IAAY,EACZ,SAAe,EACf,QAAkB,EAClB,WAAmB,EACnB,OAAoB,EAAA;AAEpB,QAAA,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,EAAE;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QACjE,MAAM,IAAI,GAAG,EAAC,GAAG,OAAO,EAAE,QAAQ,EAAC;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;QAChC;IACF;AACA;;AAEG;
|
|
1
|
+
{"version":3,"file":"TimedEvent.js","sources":["../../../src/TimedEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions.js';\nimport {Location} from './location.js';\nimport {Event} from './event.js';\nimport {reformatTimeStr} from './reformatTimeStr.js';\nimport {Zmanim} from './zmanim.js';\nimport {holidayDesc as hdesc} from './staticHolidays.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst {HAVDALAH, CANDLE_LIGHTING} = hdesc;\n\n/**\n * Base class for events that have an associated wall-clock time and\n * geographic location — for example, candle lighting, havdalah, and\n * fast begin/end times.\n *\n * Stores both a `Date` (`eventTime`) and pre-formatted 24-hour\n * (`eventTimeStr`) and locale-aware (`fmtTime`) strings. May reference a\n * \"linked\" event such as the holiday whose candle-lighting time this\n * represents.\n */\nexport class TimedEvent extends Event {\n /** The exact moment of the event, rounded to the nearest minute */\n readonly eventTime: Date;\n /** Geographic location used to compute `eventTime` */\n readonly location: Location;\n /** 24-hour formatted time string in the location's timezone (e.g. `\"19:42\"`) */\n readonly eventTimeStr: string;\n /** Locale-aware formatted time string (e.g. `\"7:42pm\"` in US locale) */\n readonly fmtTime: string;\n /** Optional event this time is associated with (e.g. the Yom Tov being lit for) */\n readonly linkedEvent?: Event;\n /**\n * Optional length of the event in minutes. Not computed or validated by\n * this class; it's a plain count of minutes for downstream renderers\n * (e.g. `@hebcal/icalendar`) to add to the event's start wall-clock time\n * when producing a non-zero-duration `DTEND`. Undefined means no\n * duration was specified.\n */\n duration?: number;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param date Hebrew date the event occurs\n * @param desc Description (not translated)\n * @param mask optional holiday flags\n * @param eventTime the exact moment of the event\n * @param location geographic location used to format the time\n * @param linkedEvent optional event this time is associated with\n * @param options optional; `locale` and `hour12` affect {@link fmtTime}\n */\n constructor(\n date: HDate,\n desc: string,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, desc, mask);\n this.eventTime = Zmanim.roundTime(eventTime);\n this.location = location;\n const timeFormat = location.getTimeFormatter();\n this.eventTimeStr = Zmanim.formatTime(this.eventTime, timeFormat);\n const opts = {...options, location};\n this.fmtTime = reformatTimeStr(this.eventTimeStr, 'pm', opts);\n if (linkedEvent !== undefined) {\n this.linkedEvent = linkedEvent;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override render(locale?: string): string {\n return `${Locale.gettext(this.getDesc(), locale)}: ${this.fmtTime}`;\n }\n /**\n * Returns translation of \"Candle lighting\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override renderBrief(locale?: string): string {\n return Locale.gettext(this.getDesc(), locale);\n }\n\n override getCategories(): string[] {\n const desc = this.getDesc();\n switch (desc) {\n // LIGHT_CANDLES or LIGHT_CANDLES_TZEIS\n case CANDLE_LIGHTING:\n return ['candles'];\n // YOM_TOV_ENDS\n case HAVDALAH:\n return ['havdalah'];\n // flags.MINOR_FAST or flags.MAJOR_FAST\n case hdesc.FAST_BEGINS:\n case hdesc.FAST_ENDS:\n return ['zmanim', 'fast'];\n case hdesc.SOF_ZMAN_ACHILAT_CHAMETZ:\n return ['zmanim', 'achilasChametz'];\n case hdesc.BIUR_CHAMETZ:\n return ['zmanim', 'biurChametz'];\n }\n /* NOTREACHED */\n return ['unknown'];\n }\n}\n\n/**\n * Candle-lighting event for the eve of Shabbat or a Yom Tov.\n *\n * Generated by {@link calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default candle lighting\n * occurs 18 minutes before sundown in the Diaspora and 20 minutes before\n * sundown in Israel (40 minutes in Jerusalem; 30 minutes in Haifa and\n * Zikhron Ya'akov), configurable via `options.candleLightingMins`.\n */\nexport class CandleLightingEvent extends TimedEvent {\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, CANDLE_LIGHTING, mask, eventTime, location, linkedEvent, options);\n }\n\n override getEmoji(): string {\n return '🕯️';\n }\n}\n\n/**\n * Havdalah event marking the end of Shabbat or a Yom Tov.\n *\n * Generated by {@link calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default Havdalah is\n * calculated by *tzeit hakochavim* (8.5° solar depression); pass\n * `options.havdalahMins` to use a fixed minute offset instead, or\n * `options.havdalahDeg` to use a different degree.\n */\nexport class HavdalahEvent extends TimedEvent {\n private readonly havdalahMins?: number;\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n havdalahMins?: number,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, HAVDALAH, mask, eventTime, location, linkedEvent, options);\n if (havdalahMins) {\n this.havdalahMins = havdalahMins;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override render(locale?: string): string {\n return `${this.renderBrief(locale)}: ${this.fmtTime}`;\n }\n /**\n * Returns translation of \"Havdalah\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override renderBrief(locale?: string): string {\n let str = Locale.gettext(this.getDesc(), locale);\n if (this.havdalahMins) {\n const min = Locale.gettext('min', locale);\n str += ` (${this.havdalahMins} ${min})`;\n }\n return str;\n }\n\n override getEmoji(): string {\n return '✨';\n }\n}\n"],"names":["hdesc"],"mappings":";;;;;;;;AASA,MAAM,EAAC,QAAQ,EAAE,eAAe,EAAC,GAAGA,WAAK;AAEzC;;;;;;;;;AASG;AACG,MAAO,UAAW,SAAQ,KAAK,CAAA;;AAE1B,IAAA,SAAS;;AAET,IAAA,QAAQ;;AAER,IAAA,YAAY;;AAEZ,IAAA,OAAO;;AAEP,IAAA,WAAW;AACpB;;;;;;AAMG;AACH,IAAA,QAAQ;AACR;;;;;;;;;AASG;AACH,IAAA,WAAA,CACE,IAAW,EACX,IAAY,EACZ,IAAY,EACZ,SAAe,EACf,QAAkB,EAClB,WAAmB,EACnB,OAAoB,EAAA;AAEpB,QAAA,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,EAAE;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QACjE,MAAM,IAAI,GAAG,EAAC,GAAG,OAAO,EAAE,QAAQ,EAAC;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;QAChC;IACF;AACA;;AAEG;AACM,IAAA,MAAM,CAAC,MAAe,EAAA;AAC7B,QAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,EAAE;IACrE;AACA;;;AAGG;AACM,IAAA,WAAW,CAAC,MAAe,EAAA;QAClC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC;IAC/C;IAES,aAAa,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;QAC3B,QAAQ,IAAI;;AAEV,YAAA,KAAK,eAAe;gBAClB,OAAO,CAAC,SAAS,CAAC;;AAEpB,YAAA,KAAK,QAAQ;gBACX,OAAO,CAAC,UAAU,CAAC;;YAErB,KAAKA,WAAK,CAAC,WAAW;YACtB,KAAKA,WAAK,CAAC,SAAS;AAClB,gBAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC3B,KAAKA,WAAK,CAAC,wBAAwB;AACjC,gBAAA,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YACrC,KAAKA,WAAK,CAAC,YAAY;AACrB,gBAAA,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;;;QAGpC,OAAO,CAAC,SAAS,CAAC;IACpB;AACD;AAED;;;;;;;;AAQG;AACG,MAAO,mBAAoB,SAAQ,UAAU,CAAA;IACjD,WAAA,CACE,IAAW,EACX,IAAY,EACZ,SAAe,EACf,QAAkB,EAClB,WAAmB,EACnB,OAAoB,EAAA;AAEpB,QAAA,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;IAC/E;IAES,QAAQ,GAAA;AACf,QAAA,OAAO,KAAK;IACd;AACD;AAED;;;;;;;;AAQG;AACG,MAAO,aAAc,SAAQ,UAAU,CAAA;AAC1B,IAAA,YAAY;AAC7B,IAAA,WAAA,CACE,IAAW,EACX,IAAY,EACZ,SAAe,EACf,QAAkB,EAClB,YAAqB,EACrB,WAAmB,EACnB,OAAoB,EAAA;AAEpB,QAAA,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;QACtE,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAClC;IACF;AACA;;AAEG;AACM,IAAA,MAAM,CAAC,MAAe,EAAA;AAC7B,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,OAAO,CAAA,CAAE;IACvD;AACA;;;AAGG;AACM,IAAA,WAAW,CAAC,MAAe,EAAA;AAClC,QAAA,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC;AAChD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YACzC,GAAG,IAAI,KAAK,IAAI,CAAC,YAAY,CAAA,CAAA,EAAI,GAAG,GAAG;QACzC;AACA,QAAA,OAAO,GAAG;IACZ;IAES,QAAQ,GAAA;AACf,QAAA,OAAO,GAAG;IACZ;AACD;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { Locale } from '@hebcal/hdate';
|
|
3
3
|
import { flags } from './event.js';
|
|
4
4
|
import { HolidayEvent } from './HolidayEvent.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YomKippurKatanEvent.js","sources":["../../../src/YomKippurKatanEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {flags} from './event.js';\nimport {HolidayEvent} from './HolidayEvent.js';\nimport {smartApostrophe} from './string.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst ykk = 'Yom Kippur Katan';\n\n/** YKK is minor day of atonement on the day preceeding each Rosh Chodesh */\nexport class YomKippurKatanEvent extends HolidayEvent {\n private readonly nextMonthName: string;\n /**\n * Normally created by {@link calendar} (via\n * `options.yomKippurKatan`) rather than directly.\n * @param date Hebrew date event occurs\n * @param nextMonthName name of the upcoming month\n */\n constructor(date: HDate, nextMonthName: string) {\n super(\n date,\n `${ykk} ${nextMonthName}`,\n flags.MINOR_FAST | flags.YOM_KIPPUR_KATAN\n );\n this.nextMonthName = nextMonthName;\n this.memo = `Minor Day of Atonement on the day preceeding Rosh Chodesh ${nextMonthName}`;\n }\n\n basename(): string {\n return this.getDesc();\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n const monthName0 = Locale.gettext(this.nextMonthName, locale);\n const monthName = smartApostrophe(monthName0);\n return `${Locale.gettext(ykk, locale)} ${monthName}`;\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n return Locale.gettext(ykk, locale);\n }\n\n url(): string | undefined {\n return undefined;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAMA,MAAM,GAAG,GAAG,kBAAkB;AAE9B;AACM,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAClC,IAAA,aAAa;AAC9B;;;;;AAKG;IACH,WAAA,CAAY,IAAW,EAAE,aAAqB,EAAA;AAC5C,QAAA,KAAK,CACH,IAAI,EACJ,CAAA,EAAG,GAAG,IAAI,aAAa,CAAA,CAAE,EACzB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAC1C;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,0DAAA,EAA6D,aAAa,EAAE;IAC1F;
|
|
1
|
+
{"version":3,"file":"YomKippurKatanEvent.js","sources":["../../../src/YomKippurKatanEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {flags} from './event.js';\nimport {HolidayEvent} from './HolidayEvent.js';\nimport {smartApostrophe} from './string.js';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst ykk = 'Yom Kippur Katan';\n\n/** YKK is minor day of atonement on the day preceeding each Rosh Chodesh */\nexport class YomKippurKatanEvent extends HolidayEvent {\n private readonly nextMonthName: string;\n /**\n * Normally created by {@link calendar} (via\n * `options.yomKippurKatan`) rather than directly.\n * @param date Hebrew date event occurs\n * @param nextMonthName name of the upcoming month\n */\n constructor(date: HDate, nextMonthName: string) {\n super(\n date,\n `${ykk} ${nextMonthName}`,\n flags.MINOR_FAST | flags.YOM_KIPPUR_KATAN\n );\n this.nextMonthName = nextMonthName;\n this.memo = `Minor Day of Atonement on the day preceeding Rosh Chodesh ${nextMonthName}`;\n }\n\n override basename(): string {\n return this.getDesc();\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override render(locale?: string): string {\n const monthName0 = Locale.gettext(this.nextMonthName, locale);\n const monthName = smartApostrophe(monthName0);\n return `${Locale.gettext(ykk, locale)} ${monthName}`;\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n override renderBrief(locale?: string): string {\n return Locale.gettext(ykk, locale);\n }\n\n override url(): string | undefined {\n return undefined;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAMA,MAAM,GAAG,GAAG,kBAAkB;AAE9B;AACM,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAClC,IAAA,aAAa;AAC9B;;;;;AAKG;IACH,WAAA,CAAY,IAAW,EAAE,aAAqB,EAAA;AAC5C,QAAA,KAAK,CACH,IAAI,EACJ,CAAA,EAAG,GAAG,IAAI,aAAa,CAAA,CAAE,EACzB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAC1C;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,0DAAA,EAA6D,aAAa,EAAE;IAC1F;IAES,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB;AACA;;AAEG;AACM,IAAA,MAAM,CAAC,MAAe,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AAC7D,QAAA,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;AAC7C,QAAA,OAAO,CAAA,EAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE;IACtD;AACA;;AAEG;AACM,IAAA,WAAW,CAAC,MAAe,EAAA;QAClC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;IACpC;IAES,GAAG,GAAA;AACV,QAAA,OAAO,SAAS;IAClB;AACD;;"}
|
package/dist/esm/ashkenazi.po.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
var poAshkenazi = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "und-x-ashkenaz" }, "contexts": { "": { "Shabbat": ["Shabbos"], "Achrei Mot": ["Achrei Mos"], "Bechukotai": ["Bechukosai"], "Beha'alotcha": ["Beha’aloscha"], "Bereshit": ["Bereshis"], "Chukat": ["Chukas"], "Erev Shavuot": ["Erev Shavuos"], "Erev Sukkot": ["Erev Sukkos"], "Ki Tavo": ["Ki Savo"], "Ki Teitzei": ["Ki Seitzei"], "Ki Tisa": ["Ki Sisa"], "Matot": ["Matos"], "Pesach Shabbat Chol ha-Moed": ["Pesach Shabbos Chol ha-Moed"], "Purim Katan": ["Purim Koton"], "Rosh Hashana LaBehemot": ["Rosh Hashana LaBeheimos"], "Shabbat Chazon": ["Shabbos Chazon"], "Shabbat HaChodesh": ["Shabbos HaChodesh"], "Shabbat HaGadol": ["Shabbos HaGadol"], "Shabbat Nachamu": ["Shabbos Nachamu"], "Shabbat Parah": ["Shabbos Parah"], "Shabbat Shekalim": ["Shabbos Shekalim"], "Shabbat Shuva": ["Shabbos Shuvah"], "Shabbat Zachor": ["Shabbos Zachor"], "Shavuot": ["Shavuos"], "Shavuot I": ["Shavuos I"], "Shavuot II": ["Shavuos II"], "Shemot": ["Shemos"], "Shmini Atzeret": ["Shmini Atzeres"], "Simchat Torah": ["Simchas Torah"], "Sukkot": ["Sukkos"], "Sukkot I": ["Sukkos I"], "Sukkot II": ["Sukkos II"], "Sukkot II (CH''M)": ["Sukkos II (CH’’M)"], "Sukkot III (CH''M)": ["Sukkos III (CH’’M)"], "Sukkot IV (CH''M)": ["Sukkos IV (CH’’M)"], "Sukkot V (CH''M)": ["Sukkos V (CH’’M)"], "Sukkot VI (CH''M)": ["Sukkos VI (CH’’M)"], "Sukkot VII (Hoshana Raba)": ["Sukkos VII (Hoshana Raba)"], "Sukkot Shabbat Chol ha-Moed": ["Sukkos Shabbos Chol ha-Moed"], "Ta'anit Bechorot": ["Ta’anis Bechoros"], "Ta'anit BeHaB": ["Ta’anis BeHaB"], "Ta'anit Esther": ["Ta’anis Esther"], "Toldot": ["Toldos"], "Vaetchanan": ["Vaeschanan"], "Yitro": ["Yisro"], "Vezot Haberakhah": ["Vezos Haberakhah"], "Parashat": ["Parshas"], "Leil Selichot": ["Leil Selichos"], "Shabbat Mevarchim Chodesh": ["Shabbos Mevorchim Chodesh"], "Shabbat Shirah": ["Shabbos Shirah"], "Asara B'Tevet": ["Asara B’Teves"], "Birkat Hachamah": ["Birkas HaChamah"], "Birkat HaChamah": ["Birkas HaChamah"], "Shushan Purim Katan": ["Shushan Purim Koton"], "Alot HaShachar": ["Alos HaShachar"], "Misheyakir": ["Misheyakir"], "Misheyakir Machmir": ["Misheyakir Machmir"], "Sunrise": ["Sunrise"], "Kriat Shema, sof zeman": ["Krias Shema, sof zman"], "Tefilah, sof zeman": ["Tefilah, sof zman"], "Kriat Shema, sof zeman (MGA)": ["Krias Shema, sof zman (MGA)"], "Kriat Shema, sof zeman (GRA)": ["Krias Shema, sof zman (GRA)"], "Tefilah, sof zeman (MGA)": ["Tefilah, sof zman (MGA)"], "Tefilah, sof zeman (GRA)": ["Tefilah, sof zman (GRA)"], "Chatzot HaLailah": ["Chatzos HaLailah"], "Chatzot HaYom": ["Chatzos"], "Chatzot hayom": ["Chatzos"], "Mincha Gedolah": ["Mincha Gedolah"], "Mincha Ketanah": ["Mincha Ketanah"], "Plag HaMincha": ["Plag HaMincha"], "Sunset": ["Sunset"], "Bein HaShemashot": ["Bein HaShemashos"], "Tzeit HaKochavim": ["Tzeis HaKochavim"], "Latest Kiddush Levana": ["Latest Kiddush Levanah"], "Earliest Kiddush Levana (3 days)": ["Earliest Kiddush Levanah (3 days)"], "Earliest Kiddush Levana (7 days)": ["Earliest Kiddush Levanah (7 days)"], "Latest Kiddush Levana (Maharil)": ["Latest Kiddush Levanah (Maharil)"], "Latest Kiddush Levana (15 days)": ["Latest Kiddush Levanah (15 days)"] } } };
|
|
3
3
|
|
|
4
4
|
export { poAshkenazi as default };
|
package/dist/esm/calendar.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import './locale.js';
|
|
3
3
|
import { months, Locale, abs2greg, HDate } from '@hebcal/hdate';
|
|
4
4
|
import { makeCandleEvent, makeFastStartEnd, makeWeekdayChanukahCandleLighting } from './candles.js';
|
package/dist/esm/candles.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { months } from '@hebcal/hdate';
|
|
3
3
|
import { flags } from './event.js';
|
|
4
4
|
import { HolidayEvent, ChanukahEvent } from './HolidayEvent.js';
|
package/dist/esm/candles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candles.js","sources":["../../../src/candles.ts"],"sourcesContent":["import {HDate, months} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions.js';\nimport {Location} from './location.js';\nimport {Event, flags} from './event.js';\nimport {ChanukahEvent, HolidayEvent} from './HolidayEvent.js';\nimport {Zmanim} from './zmanim.js';\nimport {TimedEvent, CandleLightingEvent, HavdalahEvent} from './TimedEvent.js';\nimport {holidayDesc as hdesc} from './staticHolidays.js';\nimport {DEG_6_POINT_45, DEG_7_POINT_083, DEG_16_POINT_1} from './zenith.js';\n\nconst {LIGHT_CANDLES, LIGHT_CANDLES_TZEIS} = flags;\nconst {FAST_BEGINS, FAST_ENDS} = hdesc;\n\n/** @internal */\nexport function makeCandleEvent(\n ev: Event | undefined,\n hd: HDate,\n options: CalOptions,\n isFriday: boolean,\n isSaturday: boolean\n): TimedEvent | undefined {\n let havdalahTitle = false;\n let useHavdalahOffset = isSaturday;\n let mask = ev ? ev.mask : LIGHT_CANDLES;\n if (ev !== undefined) {\n // if linked event && dow == FRI, use Candle lighting time & title\n if (!isFriday) {\n if (ev.hasAnyFlag('LIGHT_CANDLES_TZEIS', 'CHANUKAH_CANDLES')) {\n useHavdalahOffset = true;\n } else if (ev.hasFlag('YOM_TOV_ENDS')) {\n havdalahTitle = true;\n useHavdalahOffset = true;\n }\n }\n } else if (isSaturday) {\n havdalahTitle = true;\n mask = LIGHT_CANDLES_TZEIS;\n }\n // if Havdalah offset is 0 or undefined, we'll use tzeit time\n const offset = useHavdalahOffset\n ? Number(options.havdalahMins)\n : Number(options.candleLightingMins);\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, hd, useElevation);\n const time =\n useHavdalahOffset && !offset\n ? zmanim.tzeit(options.havdalahDeg)\n : zmanim.sunsetOffset(offset, true);\n if (isNaN(time.getTime())) {\n return undefined; // no sunset\n }\n if (havdalahTitle) {\n return new HavdalahEvent(\n hd,\n mask,\n time,\n location,\n options.havdalahMins,\n ev,\n options\n );\n } else {\n mask |= LIGHT_CANDLES;\n return new CandleLightingEvent(hd, mask, time, location, ev, options);\n }\n}\n\n/**\n * Minutes after sunset that minor fasts (including Yom Kippur Katan) end in\n * Israel by default, following Rabbi Deblitzky's practice.\n * @see {https://www.yeshiva.org.il/calendar/timeprinciples}\n */\nconst MINOR_FAST_END_MINUTES_IL = 15;\n\n/**\n * Returns `val` when it is a finite nonzero number, otherwise `undefined`\n */\nfunction nonzero(val: number | undefined): number | undefined {\n return typeof val === 'number' && isFinite(val) && val !== 0 ? val : undefined;\n}\n\n/**\n * Computes the \"Fast begins\" time for a minor fast (one that begins at dawn).\n *\n * When `options.fastStartMins` is a nonzero number, the fast begins that many\n * minutes before sunrise; otherwise, when `options.fastStartDeg` is a nonzero\n * number, the fast begins when the sun is that many degrees below the horizon\n * in the morning. By default, minor fasts begin at Alot HaShachar (16.1°).\n */\nfunction makeFastStartTime(zmanim: Zmanim, options: CalOptions): Date {\n const fastStartMins = nonzero(options.fastStartMins);\n if (fastStartMins !== undefined) {\n return zmanim.sunriseOffset(-Math.abs(fastStartMins), true);\n }\n const fastStartDeg = nonzero(options.fastStartDeg);\n return zmanim.timeAtAngle(\n fastStartDeg === undefined ? DEG_16_POINT_1 : Math.abs(fastStartDeg),\n true\n );\n}\n\n/**\n * Computes the \"Fast ends\" time for a fast day.\n *\n * Tish'a B'Av ends `options.tishaBavEndMins` minutes after sunset or at tzeit\n * `options.tishaBavEndDeg` when either is a nonzero number, and otherwise at\n * tzeit 6.45° (Rabbi Yechiel Michel Tucazinsky). It is not affected by\n * `options.fastEndDeg`, `options.fastEndMins` or `options.il`.\n *\n * For minor fasts: when `options.fastEndMins` is a nonzero number, the fast\n * ends that many minutes after sunset; otherwise, when `options.fastEndDeg` is\n * a nonzero number, the fast ends at tzeit for that solar depression angle.\n * When neither is specified, the default depends on `options.il`:\n * - In Israel, minor fasts end 15 minutes after sunset (Rabbi Deblitzky's practice).\n * - Elsewhere, minor fasts end at tzeit 7.083° (3 medium-sized stars).\n */\nfunction makeFastEndTime(\n zmanim: Zmanim,\n isTishaBav: boolean,\n options: CalOptions\n): Date {\n if (isTishaBav) {\n const tishaBavEndMins = nonzero(options.tishaBavEndMins);\n if (tishaBavEndMins !== undefined) {\n return zmanim.sunsetOffset(Math.abs(tishaBavEndMins), true);\n }\n const tishaBavEndDeg = nonzero(options.tishaBavEndDeg);\n return zmanim.tzeit(\n tishaBavEndDeg === undefined ? DEG_6_POINT_45 : Math.abs(tishaBavEndDeg)\n );\n }\n const fastEndMins = options.fastEndMins;\n if (typeof fastEndMins === 'number' && fastEndMins !== 0) {\n return zmanim.sunsetOffset(Math.abs(fastEndMins), true);\n }\n const fastEndDeg = options.fastEndDeg;\n if (typeof fastEndDeg === 'number' && fastEndDeg !== 0) {\n return zmanim.tzeit(Math.abs(fastEndDeg));\n }\n if (options.il) {\n return zmanim.sunsetOffset(MINOR_FAST_END_MINUTES_IL, true);\n }\n return zmanim.tzeit(DEG_7_POINT_083);\n}\n\n/**\n * A fast day holiday with attached start and end time events.\n *\n * Wraps an underlying fast-day {@link HolidayEvent} and (when computable\n * for the given location) exposes a \"Fast begins\" and \"Fast ends\"\n * {@link TimedEvent}. Generated by {@link calendar} when\n * `options.candlelighting` is `true` and `options.location` is provided.\n *\n * - Minor fasts (including Yom Kippur Katan) begin at *Alot HaShachar*\n * (16.1° below horizon in the morning), which can be overridden via\n * `options.fastStartDeg` or `options.fastStartMins`. By default they end at\n * tzeit 7.083° (3 medium-sized stars) in the Diaspora, or 15 minutes after\n * sunset in Israel (Rabbi Deblitzky's practice). This can be overridden\n * via `options.fastEndDeg` or `options.fastEndMins`.\n * - Tish'a B'Av begins at sunset on the previous day, regardless of\n * `options.fastStartDeg` / `options.fastStartMins`. By default it ends at\n * tzeit 6.45° below horizon (Rabbi Yechiel Michel Tucazinsky), which can be\n * overridden via `options.tishaBavEndDeg` or `options.tishaBavEndMins`\n * (but not by `options.fastEndDeg` / `options.fastEndMins`).\n * - When a minor fast falls on a Friday, the end time is suppressed\n * (Shabbat begins before nightfall).\n */\nexport class FastDayEvent extends HolidayEvent {\n /** original event */\n readonly linkedEvent: HolidayEvent;\n /** this will be a \"Fast begins\" event */\n readonly startEvent?: TimedEvent;\n /** this will be a \"Fast ends\" event */\n readonly endEvent?: TimedEvent;\n constructor(\n linkedEvent: HolidayEvent,\n startEvent?: TimedEvent,\n endEvent?: TimedEvent\n ) {\n super(linkedEvent.getDate(), linkedEvent.getDesc(), linkedEvent.mask);\n this.linkedEvent = linkedEvent;\n this.startEvent = startEvent;\n this.endEvent = endEvent;\n }\n render(locale?: string): string {\n return this.linkedEvent.render(locale);\n }\n renderBrief(locale?: string): string {\n return this.linkedEvent.renderBrief(locale);\n }\n urlDateSuffix(): string {\n return this.linkedEvent.urlDateSuffix();\n }\n url(): string | undefined {\n return this.linkedEvent.url();\n }\n getEmoji(): string {\n return this.linkedEvent.getEmoji();\n }\n getCategories(): string[] {\n return this.linkedEvent.getCategories();\n }\n}\n\n/**\n * Makes a pair of events representing fast start and end times\n * @internal\n */\nexport function makeFastStartEnd(\n ev: HolidayEvent,\n options: CalOptions\n): FastDayEvent {\n const desc = ev.getDesc();\n if (desc === 'Yom Kippur') {\n throw new RangeError('YK does not require this function');\n }\n const hd = ev.getDate();\n const dt = hd.greg();\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, dt, useElevation);\n let startEvent: TimedEvent | undefined;\n let endEvent: TimedEvent | undefined;\n if (desc === \"Erev Tish'a B'Av\") {\n const sunset = zmanim.sunset();\n if (!isNaN(sunset.getTime())) {\n startEvent = makeTimedEvent(ev, sunset, FAST_BEGINS, options);\n }\n } else if (desc.startsWith(\"Tish'a B'Av\")) {\n const fastEnd = makeFastEndTime(zmanim, true, options);\n if (!isNaN(fastEnd.getTime())) {\n endEvent = makeTimedEvent(ev, fastEnd, FAST_ENDS, options);\n }\n } else {\n const fastStart = makeFastStartTime(zmanim, options);\n if (!isNaN(fastStart.getTime())) {\n startEvent = makeTimedEvent(ev, fastStart, FAST_BEGINS, options);\n }\n if (\n dt.getDay() !== 5 &&\n !(hd.getDate() === 14 && hd.getMonth() === months.NISAN)\n ) {\n const fastEnd = makeFastEndTime(zmanim, false, options);\n if (!isNaN(fastEnd.getTime())) {\n endEvent = makeTimedEvent(ev, fastEnd, FAST_ENDS, options);\n }\n }\n }\n const ev2 = new FastDayEvent(ev, startEvent, endEvent);\n // copy properties such as memo or emoji\n Object.assign(ev2, ev);\n return ev2;\n}\n\nfunction makeTimedEvent(\n ev: Event,\n time: Date,\n desc: string,\n options: CalOptions\n): TimedEvent {\n const location = options.location as Location;\n const hd = ev.getDate();\n return new TimedEvent(hd, desc, ev.mask, time, location, ev, options);\n}\n\n/**\n * A Chanukah candle-lighting event that carries a specific time of day.\n *\n * Generated by {@link calendar} when both `options.candlelighting`\n * and `options.location` are set. On weekdays the time is Bein HaShmashos\n * (13.5 minutes before the sun is 7.083° below the horizon in the evening);\n * on Friday it is regular candle-lighting time, and on Saturday night it is\n * regular Havdalah time.\n */\nexport class TimedChanukahEvent extends ChanukahEvent {\n /** Time at which candles are lit, rounded to the nearest minute */\n eventTime: Date;\n /** {@link eventTime} formatted for the event's location, e.g. `'4:31pm'` */\n eventTimeStr: string;\n /** Location used to calculate {@link eventTime} */\n readonly location: Location;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param ev the untimed Chanukah event this is derived from\n * @param eventTime time at which candles are lit\n * @param location location used to format the time\n */\n constructor(ev: ChanukahEvent, eventTime: Date, location: Location) {\n super(ev.getDate(), ev.getDesc(), ev.mask, ev.chanukahDay);\n this.eventTime = Zmanim.roundTime(eventTime);\n const timeFormat = location.getTimeFormatter();\n this.eventTimeStr = Zmanim.formatTime(this.eventTime, timeFormat);\n this.location = location;\n this.emoji = ev.emoji;\n }\n}\n\n/**\n * Makes a candle-lighting event for Chankah (not on Friday/Saturday).\n * At one point this used civil dusk (6 degrees below horizon).\n * Another source suggests 4.6667 degrees below horizon.\n * @internal\n */\nexport function makeWeekdayChanukahCandleLighting(\n ev: ChanukahEvent,\n options: CalOptions\n): TimedChanukahEvent | null {\n const hd = ev.getDate();\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, hd.greg(), useElevation);\n const candleLightingTime = zmanim.beinHaShmashos();\n if (isNaN(candleLightingTime.getTime())) {\n return null;\n }\n return new TimedChanukahEvent(ev, candleLightingTime, location);\n}\n"],"names":["hdesc"],"mappings":";;;;;;;;;AAUA,MAAM,EAAC,aAAa,EAAE,mBAAmB,EAAC,GAAG,KAAK;AAClD,MAAM,EAAC,WAAW,EAAE,SAAS,EAAC,GAAGA,WAAK;AAEtC;AACM,SAAU,eAAe,CAC7B,EAAqB,EACrB,EAAS,EACT,OAAmB,EACnB,QAAiB,EACjB,UAAmB,EAAA;IAEnB,IAAI,aAAa,GAAG,KAAK;IACzB,IAAI,iBAAiB,GAAG,UAAU;AAClC,IAAA,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,aAAa;AACvC,IAAA,IAAI,EAAE,KAAK,SAAS,EAAE;;QAEpB,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,EAAE,CAAC,UAAU,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,EAAE;gBAC5D,iBAAiB,GAAG,IAAI;YAC1B;AAAO,iBAAA,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBACrC,aAAa,GAAG,IAAI;gBACpB,iBAAiB,GAAG,IAAI;YAC1B;QACF;IACF;SAAO,IAAI,UAAU,EAAE;QACrB,aAAa,GAAG,IAAI;QACpB,IAAI,GAAG,mBAAmB;IAC5B;;IAEA,MAAM,MAAM,GAAG;AACb,UAAE,MAAM,CAAC,OAAO,CAAC,YAAY;AAC7B,UAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;AACtC,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAoB;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC;AACrD,IAAA,MAAM,IAAI,GACR,iBAAiB,IAAI,CAAC;UAClB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW;UAChC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;IACvC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;QACzB,OAAO,SAAS,CAAC;IACnB;IACA,IAAI,aAAa,EAAE;AACjB,QAAA,OAAO,IAAI,aAAa,CACtB,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,OAAO,CAAC,YAAY,EACpB,EAAE,EACF,OAAO,CACR;IACH;SAAO;QACL,IAAI,IAAI,aAAa;AACrB,QAAA,OAAO,IAAI,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC;IACvE;AACF;AAEA;;;;AAIG;AACH,MAAM,yBAAyB,GAAG,EAAE;AAEpC;;AAEG;AACH,SAAS,OAAO,CAAC,GAAuB,EAAA;IACtC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,SAAS;AAChF;AAEA;;;;;;;AAOG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAmB,EAAA;IAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;AACpD,IAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAC/B,QAAA,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC7D;IACA,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;IAClD,OAAO,MAAM,CAAC,WAAW,CACvB,YAAY,KAAK,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EACpE,IAAI,CACL;AACH;AAEA;;;;;;;;;;;;;;AAcG;AACH,SAAS,eAAe,CACtB,MAAc,EACd,UAAmB,EACnB,OAAmB,EAAA;IAEnB,IAAI,UAAU,EAAE;QACd,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;AACxD,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AACjC,YAAA,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;QAC7D;QACA,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QACtD,OAAO,MAAM,CAAC,KAAK,CACjB,cAAc,KAAK,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CACzE;IACH;AACA,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;IACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,CAAC,EAAE;AACxD,QAAA,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IACzD;AACA,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;IACrC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,CAAC,EAAE;QACtD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C;AACA,IAAA,IAAI,OAAO,CAAC,EAAE,EAAE;QACd,OAAO,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE,IAAI,CAAC;IAC7D;AACA,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;AACtC;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACG,MAAO,YAAa,SAAQ,YAAY,CAAA;;AAEnC,IAAA,WAAW;;AAEX,IAAA,UAAU;;AAEV,IAAA,QAAQ;AACjB,IAAA,WAAA,CACE,WAAyB,EACzB,UAAuB,EACvB,QAAqB,EAAA;AAErB,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC;AACrE,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AACA,IAAA,MAAM,CAAC,MAAe,EAAA;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC;AACA,IAAA,WAAW,CAAC,MAAe,EAAA;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;IAC7C;IACA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;IACzC;IACA,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;IAC/B;IACA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;IACpC;IACA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;IACzC;AACD;AAED;;;AAGG;AACG,SAAU,gBAAgB,CAC9B,EAAgB,EAChB,OAAmB,EAAA;AAEnB,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE;AACzB,IAAA,IAAI,IAAI,KAAK,YAAY,EAAE;AACzB,QAAA,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC;IAC3D;AACA,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;AACvB,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;AACpB,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAoB;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC;AACrD,IAAA,IAAI,UAAkC;AACtC,IAAA,IAAI,QAAgC;AACpC,IAAA,IAAI,IAAI,KAAK,kBAAkB,EAAE;AAC/B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;YAC5B,UAAU,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;QAC/D;IACF;AAAO,SAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QACzC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;YAC7B,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;QAC5D;IACF;SAAO;QACL,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;YAC/B,UAAU,GAAG,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;QAClE;AACA,QAAA,IACE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACjB,YAAA,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,EACxD;YACA,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;gBAC7B,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;YAC5D;QACF;IACF;IACA,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC;;AAEtD,IAAA,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,GAAG;AACZ;AAEA,SAAS,cAAc,CACrB,EAAS,EACT,IAAU,EACV,IAAY,EACZ,OAAmB,EAAA;AAEnB,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAoB;AAC7C,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;AACvB,IAAA,OAAO,IAAI,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC;AACvE;AAEA;;;;;;;;AAQG;AACG,MAAO,kBAAmB,SAAQ,aAAa,CAAA;;AAEnD,IAAA,SAAS;;AAET,IAAA,YAAY;;AAEH,IAAA,QAAQ;AACjB;;;;;AAKG;AACH,IAAA,WAAA,CAAY,EAAiB,EAAE,SAAe,EAAE,QAAkB,EAAA;AAChE,QAAA,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AAC5C,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,EAAE;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;AACjE,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK;IACvB;AACD;AAED;;;;;AAKG;AACG,SAAU,iCAAiC,CAC/C,EAAiB,EACjB,OAAmB,EAAA;AAEnB,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;AACvB,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAoB;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;AAClD,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC;AAC5D,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,EAAE;IAClD,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,EAAE;AACvC,QAAA,OAAO,IAAI;IACb;IACA,OAAO,IAAI,kBAAkB,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,CAAC;AACjE;;"}
|
|
1
|
+
{"version":3,"file":"candles.js","sources":["../../../src/candles.ts"],"sourcesContent":["import {HDate, months} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions.js';\nimport {Location} from './location.js';\nimport {Event, flags} from './event.js';\nimport {ChanukahEvent, HolidayEvent} from './HolidayEvent.js';\nimport {Zmanim} from './zmanim.js';\nimport {TimedEvent, CandleLightingEvent, HavdalahEvent} from './TimedEvent.js';\nimport {holidayDesc as hdesc} from './staticHolidays.js';\nimport {DEG_6_POINT_45, DEG_7_POINT_083, DEG_16_POINT_1} from './zenith.js';\n\nconst {LIGHT_CANDLES, LIGHT_CANDLES_TZEIS} = flags;\nconst {FAST_BEGINS, FAST_ENDS} = hdesc;\n\n/** @internal */\nexport function makeCandleEvent(\n ev: Event | undefined,\n hd: HDate,\n options: CalOptions,\n isFriday: boolean,\n isSaturday: boolean\n): TimedEvent | undefined {\n let havdalahTitle = false;\n let useHavdalahOffset = isSaturday;\n let mask = ev ? ev.mask : LIGHT_CANDLES;\n if (ev !== undefined) {\n // if linked event && dow == FRI, use Candle lighting time & title\n if (!isFriday) {\n if (ev.hasAnyFlag('LIGHT_CANDLES_TZEIS', 'CHANUKAH_CANDLES')) {\n useHavdalahOffset = true;\n } else if (ev.hasFlag('YOM_TOV_ENDS')) {\n havdalahTitle = true;\n useHavdalahOffset = true;\n }\n }\n } else if (isSaturday) {\n havdalahTitle = true;\n mask = LIGHT_CANDLES_TZEIS;\n }\n // if Havdalah offset is 0 or undefined, we'll use tzeit time\n const offset = useHavdalahOffset\n ? Number(options.havdalahMins)\n : Number(options.candleLightingMins);\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, hd, useElevation);\n const time =\n useHavdalahOffset && !offset\n ? zmanim.tzeit(options.havdalahDeg)\n : zmanim.sunsetOffset(offset, true);\n if (isNaN(time.getTime())) {\n return undefined; // no sunset\n }\n if (havdalahTitle) {\n return new HavdalahEvent(\n hd,\n mask,\n time,\n location,\n options.havdalahMins,\n ev,\n options\n );\n } else {\n mask |= LIGHT_CANDLES;\n return new CandleLightingEvent(hd, mask, time, location, ev, options);\n }\n}\n\n/**\n * Minutes after sunset that minor fasts (including Yom Kippur Katan) end in\n * Israel by default, following Rabbi Deblitzky's practice.\n * @see {https://www.yeshiva.org.il/calendar/timeprinciples}\n */\nconst MINOR_FAST_END_MINUTES_IL = 15;\n\n/**\n * Returns `val` when it is a finite nonzero number, otherwise `undefined`\n */\nfunction nonzero(val: number | undefined): number | undefined {\n return typeof val === 'number' && isFinite(val) && val !== 0 ? val : undefined;\n}\n\n/**\n * Computes the \"Fast begins\" time for a minor fast (one that begins at dawn).\n *\n * When `options.fastStartMins` is a nonzero number, the fast begins that many\n * minutes before sunrise; otherwise, when `options.fastStartDeg` is a nonzero\n * number, the fast begins when the sun is that many degrees below the horizon\n * in the morning. By default, minor fasts begin at Alot HaShachar (16.1°).\n */\nfunction makeFastStartTime(zmanim: Zmanim, options: CalOptions): Date {\n const fastStartMins = nonzero(options.fastStartMins);\n if (fastStartMins !== undefined) {\n return zmanim.sunriseOffset(-Math.abs(fastStartMins), true);\n }\n const fastStartDeg = nonzero(options.fastStartDeg);\n return zmanim.timeAtAngle(\n fastStartDeg === undefined ? DEG_16_POINT_1 : Math.abs(fastStartDeg),\n true\n );\n}\n\n/**\n * Computes the \"Fast ends\" time for a fast day.\n *\n * Tish'a B'Av ends `options.tishaBavEndMins` minutes after sunset or at tzeit\n * `options.tishaBavEndDeg` when either is a nonzero number, and otherwise at\n * tzeit 6.45° (Rabbi Yechiel Michel Tucazinsky). It is not affected by\n * `options.fastEndDeg`, `options.fastEndMins` or `options.il`.\n *\n * For minor fasts: when `options.fastEndMins` is a nonzero number, the fast\n * ends that many minutes after sunset; otherwise, when `options.fastEndDeg` is\n * a nonzero number, the fast ends at tzeit for that solar depression angle.\n * When neither is specified, the default depends on `options.il`:\n * - In Israel, minor fasts end 15 minutes after sunset (Rabbi Deblitzky's practice).\n * - Elsewhere, minor fasts end at tzeit 7.083° (3 medium-sized stars).\n */\nfunction makeFastEndTime(\n zmanim: Zmanim,\n isTishaBav: boolean,\n options: CalOptions\n): Date {\n if (isTishaBav) {\n const tishaBavEndMins = nonzero(options.tishaBavEndMins);\n if (tishaBavEndMins !== undefined) {\n return zmanim.sunsetOffset(Math.abs(tishaBavEndMins), true);\n }\n const tishaBavEndDeg = nonzero(options.tishaBavEndDeg);\n return zmanim.tzeit(\n tishaBavEndDeg === undefined ? DEG_6_POINT_45 : Math.abs(tishaBavEndDeg)\n );\n }\n const fastEndMins = options.fastEndMins;\n if (typeof fastEndMins === 'number' && fastEndMins !== 0) {\n return zmanim.sunsetOffset(Math.abs(fastEndMins), true);\n }\n const fastEndDeg = options.fastEndDeg;\n if (typeof fastEndDeg === 'number' && fastEndDeg !== 0) {\n return zmanim.tzeit(Math.abs(fastEndDeg));\n }\n if (options.il) {\n return zmanim.sunsetOffset(MINOR_FAST_END_MINUTES_IL, true);\n }\n return zmanim.tzeit(DEG_7_POINT_083);\n}\n\n/**\n * A fast day holiday with attached start and end time events.\n *\n * Wraps an underlying fast-day {@link HolidayEvent} and (when computable\n * for the given location) exposes a \"Fast begins\" and \"Fast ends\"\n * {@link TimedEvent}. Generated by {@link calendar} when\n * `options.candlelighting` is `true` and `options.location` is provided.\n *\n * - Minor fasts (including Yom Kippur Katan) begin at *Alot HaShachar*\n * (16.1° below horizon in the morning), which can be overridden via\n * `options.fastStartDeg` or `options.fastStartMins`. By default they end at\n * tzeit 7.083° (3 medium-sized stars) in the Diaspora, or 15 minutes after\n * sunset in Israel (Rabbi Deblitzky's practice). This can be overridden\n * via `options.fastEndDeg` or `options.fastEndMins`.\n * - Tish'a B'Av begins at sunset on the previous day, regardless of\n * `options.fastStartDeg` / `options.fastStartMins`. By default it ends at\n * tzeit 6.45° below horizon (Rabbi Yechiel Michel Tucazinsky), which can be\n * overridden via `options.tishaBavEndDeg` or `options.tishaBavEndMins`\n * (but not by `options.fastEndDeg` / `options.fastEndMins`).\n * - When a minor fast falls on a Friday, the end time is suppressed\n * (Shabbat begins before nightfall).\n */\nexport class FastDayEvent extends HolidayEvent {\n /** original event */\n readonly linkedEvent: HolidayEvent;\n /** this will be a \"Fast begins\" event */\n readonly startEvent?: TimedEvent;\n /** this will be a \"Fast ends\" event */\n readonly endEvent?: TimedEvent;\n constructor(\n linkedEvent: HolidayEvent,\n startEvent?: TimedEvent,\n endEvent?: TimedEvent\n ) {\n super(linkedEvent.getDate(), linkedEvent.getDesc(), linkedEvent.mask);\n this.linkedEvent = linkedEvent;\n this.startEvent = startEvent;\n this.endEvent = endEvent;\n }\n override render(locale?: string): string {\n return this.linkedEvent.render(locale);\n }\n override renderBrief(locale?: string): string {\n return this.linkedEvent.renderBrief(locale);\n }\n override urlDateSuffix(): string {\n return this.linkedEvent.urlDateSuffix();\n }\n override url(): string | undefined {\n return this.linkedEvent.url();\n }\n override getEmoji(): string {\n return this.linkedEvent.getEmoji();\n }\n override getCategories(): string[] {\n return this.linkedEvent.getCategories();\n }\n}\n\n/**\n * Makes a pair of events representing fast start and end times\n * @internal\n */\nexport function makeFastStartEnd(\n ev: HolidayEvent,\n options: CalOptions\n): FastDayEvent {\n const desc = ev.getDesc();\n if (desc === 'Yom Kippur') {\n throw new RangeError('YK does not require this function');\n }\n const hd = ev.getDate();\n const dt = hd.greg();\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, dt, useElevation);\n let startEvent: TimedEvent | undefined;\n let endEvent: TimedEvent | undefined;\n if (desc === \"Erev Tish'a B'Av\") {\n const sunset = zmanim.sunset();\n if (!isNaN(sunset.getTime())) {\n startEvent = makeTimedEvent(ev, sunset, FAST_BEGINS, options);\n }\n } else if (desc.startsWith(\"Tish'a B'Av\")) {\n const fastEnd = makeFastEndTime(zmanim, true, options);\n if (!isNaN(fastEnd.getTime())) {\n endEvent = makeTimedEvent(ev, fastEnd, FAST_ENDS, options);\n }\n } else {\n const fastStart = makeFastStartTime(zmanim, options);\n if (!isNaN(fastStart.getTime())) {\n startEvent = makeTimedEvent(ev, fastStart, FAST_BEGINS, options);\n }\n if (\n dt.getDay() !== 5 &&\n !(hd.getDate() === 14 && hd.getMonth() === months.NISAN)\n ) {\n const fastEnd = makeFastEndTime(zmanim, false, options);\n if (!isNaN(fastEnd.getTime())) {\n endEvent = makeTimedEvent(ev, fastEnd, FAST_ENDS, options);\n }\n }\n }\n const ev2 = new FastDayEvent(ev, startEvent, endEvent);\n // copy properties such as memo or emoji\n Object.assign(ev2, ev);\n return ev2;\n}\n\nfunction makeTimedEvent(\n ev: Event,\n time: Date,\n desc: string,\n options: CalOptions\n): TimedEvent {\n const location = options.location as Location;\n const hd = ev.getDate();\n return new TimedEvent(hd, desc, ev.mask, time, location, ev, options);\n}\n\n/**\n * A Chanukah candle-lighting event that carries a specific time of day.\n *\n * Generated by {@link calendar} when both `options.candlelighting`\n * and `options.location` are set. On weekdays the time is Bein HaShmashos\n * (13.5 minutes before the sun is 7.083° below the horizon in the evening);\n * on Friday it is regular candle-lighting time, and on Saturday night it is\n * regular Havdalah time.\n */\nexport class TimedChanukahEvent extends ChanukahEvent {\n /** Time at which candles are lit, rounded to the nearest minute */\n eventTime: Date;\n /** {@link eventTime} formatted for the event's location, e.g. `'4:31pm'` */\n eventTimeStr: string;\n /** Location used to calculate {@link eventTime} */\n readonly location: Location;\n /**\n * Normally created by {@link calendar} rather than directly.\n * @param ev the untimed Chanukah event this is derived from\n * @param eventTime time at which candles are lit\n * @param location location used to format the time\n */\n constructor(ev: ChanukahEvent, eventTime: Date, location: Location) {\n super(ev.getDate(), ev.getDesc(), ev.mask, ev.chanukahDay);\n this.eventTime = Zmanim.roundTime(eventTime);\n const timeFormat = location.getTimeFormatter();\n this.eventTimeStr = Zmanim.formatTime(this.eventTime, timeFormat);\n this.location = location;\n this.emoji = ev.emoji;\n }\n}\n\n/**\n * Makes a candle-lighting event for Chankah (not on Friday/Saturday).\n * At one point this used civil dusk (6 degrees below horizon).\n * Another source suggests 4.6667 degrees below horizon.\n * @internal\n */\nexport function makeWeekdayChanukahCandleLighting(\n ev: ChanukahEvent,\n options: CalOptions\n): TimedChanukahEvent | null {\n const hd = ev.getDate();\n const location = options.location as Location;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, hd.greg(), useElevation);\n const candleLightingTime = zmanim.beinHaShmashos();\n if (isNaN(candleLightingTime.getTime())) {\n return null;\n }\n return new TimedChanukahEvent(ev, candleLightingTime, location);\n}\n"],"names":["hdesc"],"mappings":"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"}
|
package/dist/esm/cities.json.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
var citiesJson = [
|
|
3
3
|
"Ashdod|IL|31.79213|34.64966|Asia/Jerusalem|27",
|
|
4
4
|
"Atlanta|US|33.749|-84.38798|America/New_York|336",
|
package/dist/esm/event.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { HDate, Locale } from '@hebcal/hdate';
|
|
3
3
|
import './locale.js';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { months, isDate, greg2abs, HDate, daysInGregMonth } from '@hebcal/hdate';
|
|
3
3
|
|
|
4
4
|
const { TISHREI } = months;
|
package/dist/esm/hallel.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { months } from '@hebcal/hdate';
|
|
3
3
|
import { holidayDesc } from './staticHolidays.js';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
var noNikudOverride = { "headers": { "plural-forms": "nplurals=2; plural=(n != 1);", "language": "he-x-NoNikud" }, "contexts": { "": { "Korach": ["קורח"], "Chukat": ["חוקת"], "Erev Yom Kippur": ["ערב יום כיפור"], "Yom Kippur": ["יום כיפור"], "Yom Kippur Katan": ["יום כיפור קטן"], "Pesach Shabbat Chol ha-Moed": ["שבת חול המועד פסח"], "Sukkot Shabbat Chol ha-Moed": ["שבת חול המועד סוכות"], "Erev Sukkot": ["ערב סוכות"], "Sukkot": ["סוכות"], "Sukkot I": ["סוכות א׳"], "Sukkot II": ["סוכות ב׳"], "Sukkot II (CH''M)": ["סוכות ב׳ (חוה״מ)"], "Sukkot III (CH''M)": ["סוכות ג׳ (חוה״מ)"], "Sukkot IV (CH''M)": ["סוכות ד׳ (חוה״מ)"], "Sukkot V (CH''M)": ["סוכות ה׳ (חוה״מ)"], "Sukkot VI (CH''M)": ["סוכות ו׳ (חוה״מ)"], "Sukkot VII (Hoshana Raba)": ["סוכות ז׳ (הושענא רבה)"], "Swords of Iron War Memorial Day": ["יום הזיכרון לחללי מלחמת חרבות ברזל"], "Latest Kiddush Levana": ["סוף זמן קידוש לבנה"], "Earliest Kiddush Levana (3 days)": ["תחילת זמן קידוש לבנה (3 ימים)"], "Earliest Kiddush Levana (7 days)": ["תחילת זמן קידוש לבנה (7 ימים)"], "Latest Kiddush Levana (Maharil)": ["סוף זמן קידוש לבנה (מהרי״ל)"], "Latest Kiddush Levana (15 days)": ["סוף זמן קידוש לבנה (15 ימים)"] } } };
|
|
3
3
|
|
|
4
4
|
export { noNikudOverride as default };
|
package/dist/esm/he.po.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
var poHe = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "he_IL" }, "contexts": { "": { "Shabbat": ["שַׁבָּת"], "Parashat": ["פָּרָשַׁת"], "Achrei Mot": ["אַחֲרֵי מוֹת"], "Balak": ["בָּלָק"], "Bamidbar": ["בְּמִדְבַּר"], "Bechukotai": ["בְּחֻקֹּתַי"], "Beha'alotcha": ["בְּהַעֲלֹתְךָ"], "Behar": ["בְּהַר"], "Bereshit": ["בְּרֵאשִׁית"], "Beshalach": ["בְּשַׁלַּח"], "Bo": ["בֹּא"], "Chayei Sara": ["חַיֵּי שָֹרָה"], "Chukat": ["חֻקַּת"], "Devarim": ["דְּבָרִים"], "Eikev": ["עֵקֶב"], "Emor": ["אֱמוֹר"], "Ha'azinu": ["הַאֲזִינוּ"], "Kedoshim": ["קְדֹשִׁים"], "Ki Tavo": ["כִּי־תָבוֹא"], "Ki Teitzei": ["כִּי־תֵצֵא"], "Ki Tisa": ["כִּי תִשָּׂא"], "Korach": ["קֹרַח"], "Lech-Lecha": ["לֶךְ־לְךָ"], "Masei": ["מַסְעֵי"], "Matot": ["מַטּוֹת"], "Metzora": ["מְצֹרָע"], "Miketz": ["מִקֵּץ"], "Mishpatim": ["מִשְׁפָּטִים"], "Nasso": ["נָשׂא"], "Nitzavim": ["נִצָּבִים"], "Noach": ["נֹחַ"], "Pekudei": ["פְקוּדֵי"], "Pinchas": ["פִּינְחָס"], "Re'eh": ["רְאֵה"], "Sh'lach": ["שְׁלַח־לְךָ"], "Shemot": ["שְׁמוֹת"], "Shmini": ["שְּׁמִינִי"], "Shoftim": ["שׁוֹפְטִים"], "Tazria": ["תַזְרִיעַ"], "Terumah": ["תְּרוּמָה"], "Tetzaveh": ["תְּצַוֶּה"], "Toldot": ["תּוֹלְדוֹת"], "Tzav": ["צַו"], "Vaera": ["וָאֵרָא"], "Vaetchanan": ["וָאֶתְחַנַּן"], "Vayakhel": ["וַיַּקְהֵל"], "Vayechi": ["וַיְחִי"], "Vayeilech": ["וַיֵּלֶךְ"], "Vayera": ["וַיֵּרָא"], "Vayeshev": ["וַיֵּשֶׁב"], "Vayetzei": ["וַיֵּצֵא"], "Vayigash": ["וַיִּגַּשׁ"], "Vayikra": ["וַיִּקְרָא"], "Vayishlach": ["וַיִּשְׁלַח"], "Vezot Haberakhah": ["וְזֹאת הַבְּרָכָה"], "Yitro": ["יִתְרוֹ"], "Asara B'Tevet": ["עֲשָׂרָה בְּטֵבֵת"], "Candle lighting": ["הַדְלָקַת נֵרוֹת"], "Chanukah": ["חֲנוּכָּה"], "Chanukah: 1 Candle": ["חֲנוּכָּה: א׳ נֵר"], "Chanukah: 2 Candles": ["חֲנוּכָּה: ב׳ נֵרוֹת"], "Chanukah: 3 Candles": ["חֲנוּכָּה: ג׳ נֵרוֹת"], "Chanukah: 4 Candles": ["חֲנוּכָּה: ד׳ נֵרוֹת"], "Chanukah: 5 Candles": ["חֲנוּכָּה: ה׳ נֵרוֹת"], "Chanukah: 6 Candles": ["חֲנוּכָּה: ו׳ נֵרוֹת"], "Chanukah: 7 Candles": ["חֲנוּכָּה: ז׳ נֵרוֹת"], "Chanukah: 8 Candles": ["חֲנוּכָּה: ח׳ נֵרוֹת"], "Chanukah: 8th Day": ["חֲנוּכָּה: יוֹם ח׳"], "Days of the Omer": ["סְפִירַת הָעוֹמֶר"], "Omer": ["עוֹמֶר"], "day of the Omer": ["בָּעוֹמֶר"], "Erev Pesach": ["עֶרֶב פֶּסַח"], "Erev Purim": ["עֶרֶב פּוּרִים"], "Erev Rosh Hashana": ["עֶרֶב רֹאשׁ הַשָּׁנָה"], "Erev Shavuot": ["עֶרֶב שָׁבוּעוֹת"], "Erev Simchat Torah": ["עֶרֶב שִׂמְחַת תּוֹרָה"], "Erev Sukkot": ["עֶרֶב סֻכּוֹת"], "Erev Tish'a B'Av": ["עֶרֶב תִּשְׁעָה בְּאָב"], "Erev Yom Kippur": ["עֶרֶב יוֹם כִּפּוּר"], "Havdalah": ["הַבְדָּלָה"], "Lag BaOmer": ["ל״ג בָּעוֹמֶר"], "Leil Selichot": ["סְלִיחוֹת"], "Pesach": ["פֶּסַח"], "Pesach I": ["פֶּסַח א׳"], "Pesach II": ["פֶּסַח ב׳"], "Pesach II (CH''M)": ["פֶּסַח ב׳ (חוה״מ)"], "Pesach III (CH''M)": ["פֶּסַח ג׳ (חוה״מ)"], "Pesach IV (CH''M)": ["פֶּסַח ד׳ (חוה״מ)"], "Pesach Sheni": ["פֶּסַח שֵׁנִי"], "Pesach V (CH''M)": ["פֶּסַח ה׳ (חוה״מ)"], "Pesach VI (CH''M)": ["פֶּסַח ו׳ (חוה״מ)"], "Pesach VII": ["פֶּסַח ז׳"], "Pesach VIII": ["פֶּסַח ח׳"], "Pesach Shabbat Chol ha-Moed": ["שַׁבַּת חֹל הַמּוֹעֵד פֶּסַח"], "Purim": ["פּוּרִים"], "Purim Katan": ["פּוּרִים קָטָן"], "Rosh Chodesh": ["רֹאשׁ חוֹדֶשׁ"], "Rosh Hashana": ["רֹאשׁ הַשָּׁנָה"], "Rosh Hashana I": ["רֹאשׁ הַשָּׁנָה א׳"], "Rosh Hashana II": ["רֹאשׁ הַשָּׁנָה ב׳"], "Shabbat Chazon": ["שַׁבַּת חֲזוֹן"], "Shabbat HaChodesh": ["שַׁבַּת הַחֹדֶשׁ"], "Shabbat HaGadol": ["שַׁבַּת הַגָּדוֹל"], "Shabbat Nachamu": ["שַׁבַּת נַחֲמוּ"], "Shabbat Parah": ["שַׁבַּת פָּרָה"], "Shabbat Shekalim": ["שַׁבַּת שְׁקָלִים"], "Shabbat Shuva": ["שַׁבַּת שׁוּבָה"], "Shabbat Zachor": ["שַׁבַּת זָכוֹר"], "Shavuot": ["שָׁבוּעוֹת"], "Shavuot I": ["שָׁבוּעוֹת א׳"], "Shavuot II": ["שָׁבוּעוֹת ב׳"], "Shmini Atzeret": ["שְׁמִינִי עֲצֶרֶת"], "Shushan Purim": ["שׁוּשָׁן פּוּרִים"], "Sigd": ["חַג הַסִּיגְד"], "Simchat Torah": ["שִׂמְחַת תּוֹרָה"], "Sukkot": ["סֻכּוֹת"], "Sukkot I": ["סֻכּוֹת א׳"], "Sukkot II": ["סֻכּוֹת ב׳"], "Sukkot II (CH''M)": ["סֻכּוֹת ב׳ (חוה״מ)"], "Sukkot III (CH''M)": ["סֻכּוֹת ג׳ (חוה״מ)"], "Sukkot IV (CH''M)": ["סֻכּוֹת ד׳ (חוה״מ)"], "Sukkot V (CH''M)": ["סֻכּוֹת ה׳ (חוה״מ)"], "Sukkot VI (CH''M)": ["סֻכּוֹת ו׳ (חוה״מ)"], "Sukkot VII (Hoshana Raba)": ["סֻכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"], "Sukkot Shabbat Chol ha-Moed": ["שַׁבַּת חֹל הַמּוֹעֵד סֻכּוֹת"], "Ta'anit Bechorot": ["תַּעֲנִית בְּכוֹרוֹת"], "Ta'anit BeHaB": ["תַּעֲנִית בה״ב"], "Ta'anit Esther": ["תַּעֲנִית אֶסְתֵּר"], "Tish'a B'Av": ["תִּשְׁעָה בְּאָב"], "Tu B'Av": ["ט״וּ בְּאָב"], "Tu BiShvat": ["ט״וּ בִּשְׁבָט"], "Tu B'Shvat": ["ט״וּ בִּשְׁבָט"], "Tzom Gedaliah": ["צוֹם גְּדַלְיָה"], "Tzom Tammuz": ["צוֹם י״ז בְּתַמּוּז"], "Yom HaAtzma'ut": ["יוֹם הָעַצְמָאוּת"], "Yom HaShoah": ["יוֹם הַשּׁוֹאָה"], "Yom HaZikaron": ["יוֹם הַזִּכָּרוֹן"], "Yom Kippur": ["יוֹם כִּפּוּר"], "Yom Yerushalayim": ["יוֹם יְרוּשָׁלַיִם"], "Yom HaAliyah": ["יוֹם הַעֲלִיָּה"], "Yom HaAliyah School Observance": ["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"], "Rosh Chodesh Adar": ["רֹאשׁ חוֹדֶשׁ אֲדָר"], "Rosh Chodesh Adar I": ["רֹאשׁ חוֹדֶשׁ אֲדָר א׳"], "Rosh Chodesh Adar II": ["רֹאשׁ חוֹדֶשׁ אֲדָר ב׳"], "Rosh Chodesh Av": ["רֹאשׁ חוֹדֶשׁ אָב"], "Rosh Chodesh Cheshvan": ["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"], "Rosh Chodesh Elul": ["רֹאשׁ חוֹדֶשׁ אֱלוּל"], "Rosh Chodesh Iyyar": ["רֹאשׁ חוֹדֶשׁ אִיָּיר"], "Rosh Chodesh Kislev": ["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"], "Rosh Chodesh Nisan": ["רֹאשׁ חוֹדֶשׁ נִיסָן"], "Rosh Chodesh Sh'vat": ["רֹאשׁ חוֹדֶשׁ שְׁבָט"], "Rosh Chodesh Sivan": ["רֹאשׁ חוֹדֶשׁ סִיוָן"], "Rosh Chodesh Tamuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tammuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tevet": ["רֹאשׁ חוֹדֶשׁ טֵבֵת"], "min": ["דַּקּוֹת"], "Fast begins": ["תְּחִילַּת הַצוֹם"], "Fast ends": ["סִיּוּם הַצוֹם"], "Rosh Hashana LaBehemot": ["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"], "Tish'a B'Av (observed)": ["(תִּשְׁעָה בְּאָב (נִדְחָה"], "Shabbat Mevarchim Chodesh": ["שַׁבַּת מְבָרְכִים חוֹדֶשׁ"], "Shabbat Shirah": ["שַׁבַּת שִׁירָה"], "Lovingkindness": ["חֶסֶד"], "Might": ["גְּבוּרָה"], "Beauty": ["תִּפְאֶרֶת"], "Eternity": ["נֶּצַח"], "Splendor": ["הוֹד"], "Foundation": ["יְּסוֹד"], "Majesty": ["מַּלְכוּת"], "day": ["יוֹם"], "Yom Kippur Katan": ["יוֹם כִּפּוּר קָטָן"], "Yizkor": ["יִזְכּוֹר"], "Family Day": ["יוֹם הַמִּשׁפָּחָה"], "Yitzhak Rabin Memorial Day": ["יוֹם הַזִּכָּרוֹן לְיִצְחָק רַבִּין"], "Jabotinsky Day": ["יוֹם זַ׳בּוֹטִינְסְקִי"], "Herzl Day": ["יוֹם הֶרְצְל"], "Ben-Gurion Day": ["יוֹם בֶּן־גּוּרִיּוֹן"], "Hebrew Language Day": ["יוֹם הַשָׂפָה הַעִברִית"], "Birkat Hachamah": ["בִּרְכַּת הַחַמָּה"], "Birkat HaChamah": ["בִּרְכַּת הַחַמָּה"], "Shushan Purim Katan": ["שׁוּשָׁן פּוּרִים קָטָן"], "Purim Meshulash": ["פּוּרִים מְשׁוּלָּשׁ"], "Chag HaBanot": ["חַג הַבָּנוֹת"], "Molad": ["מוֹלָד הָלְּבָנָה"], "chalakim": ["חֲלָקִים"], "Alot HaShachar": ["עֲלוֹת הַשַּׁחַר"], "Misheyakir": ["מִשֶּׁיַּכִּיר"], "Misheyakir Machmir": ["מִשֶּׁיַּכִּיר מַחְמִיר"], "Sunrise": ["נֵץ הַחַמָּה"], "Kriat Shema, sof zeman": ["סוֹף זְמַן קְרִיאַת שְׁמַע"], "Tefilah, sof zeman": ["סוֹף זְמַן תְּפִלָּה"], "Kriat Shema, sof zeman (MGA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (מג״א)"], "Kriat Shema, sof zeman (GRA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (גְּרָ״א)"], "Tefilah, sof zeman (MGA)": ["סוֹף זְמַן תְּפִלָּה (מג״א)"], "Tefilah, sof zeman (GRA)": ["סוֹף זְמַן תְּפִלָּה (גְּרָ״א)"], "Chatzot HaLailah": ["חֲצוֹת הַלַּיְלָה"], "Chatzot HaYom": ["חֲצוֹת הַיּוֹם"], "Chatzot hayom": ["חֲצוֹת הַיּוֹם"], "Mincha Gedolah": ["מִנְחָה גְּדוֹלָה"], "Mincha Ketanah": ["מִנְחָה קְטַנָּה"], "Plag HaMincha": ["פְּלַג הַמִּנְחָה"], "Sunset": ["שְׁקִיעַת הַחַמָּה"], "Bein HaShemashot": ["בֵּין הַשְּׁמָשׁוֹת"], "Tzeit HaKochavim": ["צֵאת הַכּוֹכָבִים"], "Biur Chametz": ["בִּעוּר חָמֵץ"], "Finish eating chametz": ["סוֹף זְמַן אֲכִילַת חָמֵץ"], "Swords of Iron War Memorial Day": ["יוֹם הַזִּכָּרוֹן לְחַלְלֵי מִלְחֶמֶת חַרְבוֹת בַּרְזֶל"], "Latest Kiddush Levana": ["סוֹף זְמַן קִדּוּשׁ לְבָנָה"], "Earliest Kiddush Levana (3 days)": ["תְּחִלַּת זְמַן קִדּוּשׁ לְבָנָה (3 יָמִים)"], "Earliest Kiddush Levana (7 days)": ["תְּחִלַּת זְמַן קִדּוּשׁ לְבָנָה (7 יָמִים)"], "Latest Kiddush Levana (Maharil)": ["סוֹף זְמַן קִדּוּשׁ לְבָנָה (מהרי״ל)"], "Latest Kiddush Levana (15 days)": ["סוֹף זְמַן קִדּוּשׁ לְבָנָה (15 יָמִים)"] } } };
|
|
3
3
|
|
|
4
4
|
export { poHe as default };
|
package/dist/esm/hebcal.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { birthdayOrAnniversary, yahrzeit, HDate } from '@hebcal/hdate';
|
|
3
3
|
import './locale.js';
|
|
4
4
|
import { version } from './pkgVersion.js';
|
package/dist/esm/holidays.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { months, HDate } from '@hebcal/hdate';
|
|
3
3
|
import QuickLRU from 'quick-lru';
|
|
4
4
|
import { flags } from './event.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
export { version } from './pkgVersion.js';
|
|
3
3
|
export { HDate, Locale, gematriya, gematriyaStrToNum, greg, months } from '@hebcal/hdate';
|
|
4
4
|
import './locale.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v6.14.
|
|
1
|
+
/*! @hebcal/core v6.14.5, distributed under GPLv2 or later https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
import { getPseudoISO, HDate } from '@hebcal/hdate';
|
|
3
3
|
import { Zmanim } from './zmanim.js';
|
|
4
4
|
import { getHolidaysOnDate } from './holidays.js';
|