@hebcal/core 5.6.1 → 5.7.1

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.
Files changed (110) hide show
  1. package/README.md +23 -1
  2. package/dist/CalOptions.d.ts +1 -1
  3. package/dist/HolidayEvent.d.ts +0 -5
  4. package/dist/YomKippurKatanEvent.d.ts +0 -1
  5. package/dist/bundle.js +9739 -9578
  6. package/dist/bundle.js.map +1 -1
  7. package/dist/bundle.min.js +2 -2
  8. package/dist/bundle.min.js.map +1 -1
  9. package/dist/calendar.d.ts +110 -0
  10. package/dist/candles.d.ts +10 -1
  11. package/dist/es/CalOptions.d.ts +158 -0
  12. package/dist/es/DailyLearning.d.ts +21 -0
  13. package/dist/es/DailyLearning.js +36 -0
  14. package/dist/es/DailyLearning.js.map +1 -0
  15. package/dist/es/HebrewDateEvent.d.ts +37 -0
  16. package/dist/es/HebrewDateEvent.js +77 -0
  17. package/dist/es/HebrewDateEvent.js.map +1 -0
  18. package/dist/es/HolidayEvent.d.ts +76 -0
  19. package/dist/es/HolidayEvent.js +165 -0
  20. package/dist/es/HolidayEvent.js.map +1 -0
  21. package/dist/es/MevarchimChodeshEvent.d.ts +25 -0
  22. package/dist/es/MevarchimChodeshEvent.js +54 -0
  23. package/dist/es/MevarchimChodeshEvent.js.map +1 -0
  24. package/dist/es/ParshaEvent.d.ts +23 -0
  25. package/dist/es/ParshaEvent.js +53 -0
  26. package/dist/es/ParshaEvent.js.map +1 -0
  27. package/dist/es/TimedEvent.d.ts +47 -0
  28. package/dist/es/TimedEvent.js +97 -0
  29. package/dist/es/TimedEvent.js.map +1 -0
  30. package/dist/es/YomKippurKatanEvent.d.ts +23 -0
  31. package/dist/es/YomKippurKatanEvent.js +43 -0
  32. package/dist/es/YomKippurKatanEvent.js.map +1 -0
  33. package/dist/es/ashkenazi.po.d.ts +67 -0
  34. package/dist/es/ashkenazi.po.js +5 -0
  35. package/dist/es/ashkenazi.po.js.map +1 -0
  36. package/dist/es/calendar.d.ts +110 -0
  37. package/dist/es/calendar.js +615 -0
  38. package/dist/es/calendar.js.map +1 -0
  39. package/dist/es/candles.d.ts +37 -0
  40. package/dist/es/candles.js +161 -0
  41. package/dist/es/candles.js.map +1 -0
  42. package/dist/es/event.d.ts +187 -0
  43. package/dist/es/event.js +243 -0
  44. package/dist/es/event.js.map +1 -0
  45. package/dist/es/getStartAndEnd.d.ts +6 -0
  46. package/dist/es/getStartAndEnd.js +102 -0
  47. package/dist/es/getStartAndEnd.js.map +1 -0
  48. package/dist/es/hallel.d.ts +6 -0
  49. package/dist/es/hallel.js +52 -0
  50. package/dist/es/hallel.js.map +1 -0
  51. package/dist/es/he.po.d.ts +246 -0
  52. package/dist/es/he.po.js +5 -0
  53. package/dist/es/he.po.js.map +1 -0
  54. package/dist/es/hebcal.d.ts +259 -0
  55. package/dist/es/hebcal.js +336 -0
  56. package/dist/es/hebcal.js.map +1 -0
  57. package/dist/es/holidays.d.ts +22 -0
  58. package/dist/es/holidays.js +321 -0
  59. package/dist/es/holidays.js.map +1 -0
  60. package/dist/es/index.d.ts +23 -0
  61. package/dist/es/index.js +22 -0
  62. package/dist/es/index.js.map +1 -0
  63. package/dist/es/locale.d.ts +1 -0
  64. package/dist/es/locale.js +21 -0
  65. package/dist/es/locale.js.map +1 -0
  66. package/dist/es/location.d.ts +73 -0
  67. package/dist/es/location.js +306 -0
  68. package/dist/es/location.js.map +1 -0
  69. package/dist/es/modern.d.ts +18 -0
  70. package/dist/es/modern.js +64 -0
  71. package/dist/es/modern.js.map +1 -0
  72. package/dist/es/molad.d.ts +62 -0
  73. package/dist/es/molad.js +141 -0
  74. package/dist/es/molad.js.map +1 -0
  75. package/dist/es/omer.d.ts +37 -0
  76. package/dist/es/omer.js +88 -0
  77. package/dist/es/omer.js.map +1 -0
  78. package/dist/es/parshaName.d.ts +3 -0
  79. package/dist/es/parshaName.js +19 -0
  80. package/dist/es/parshaName.js.map +1 -0
  81. package/dist/es/pkgVersion.d.ts +2 -0
  82. package/dist/es/pkgVersion.js +6 -0
  83. package/dist/es/pkgVersion.js.map +1 -0
  84. package/dist/es/reformatTimeStr.d.ts +8 -0
  85. package/dist/es/reformatTimeStr.js +52 -0
  86. package/dist/es/reformatTimeStr.js.map +1 -0
  87. package/dist/es/sedra.d.ts +107 -0
  88. package/dist/es/sedra.js +494 -0
  89. package/dist/es/sedra.js.map +1 -0
  90. package/dist/es/staticHolidays.d.ts +176 -0
  91. package/dist/es/staticHolidays.js +626 -0
  92. package/dist/es/staticHolidays.js.map +1 -0
  93. package/dist/es/tachanun.d.ts +29 -0
  94. package/dist/es/tachanun.js +125 -0
  95. package/dist/es/tachanun.js.map +1 -0
  96. package/dist/es/zmanim.d.ts +341 -0
  97. package/dist/es/zmanim.js +573 -0
  98. package/dist/es/zmanim.js.map +1 -0
  99. package/dist/event.d.ts +1 -0
  100. package/dist/holidays.d.ts +13 -0
  101. package/dist/index.cjs +2762 -10041
  102. package/dist/index.cjs.map +1 -1
  103. package/dist/index.d.ts +3 -2
  104. package/dist/module.d.ts +101 -80
  105. package/dist/pkgVersion.d.ts +1 -1
  106. package/dist/sedra.d.ts +4 -4
  107. package/dist/tachanun.d.ts +17 -1
  108. package/package.json +18 -6
  109. package/dist/index.mjs +0 -11998
  110. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,165 @@
1
+ /*! @hebcal/core v5.7.1 */
2
+ import { isoDateString, Locale } from '@hebcal/hdate';
3
+ import { Event, flags } from './event.js';
4
+ import { holidayDesc } from './staticHolidays.js';
5
+ import './locale.js';
6
+
7
+ /** Represents a built-in holiday like Pesach, Purim or Tu BiShvat */
8
+ class HolidayEvent extends Event {
9
+ basename() {
10
+ return this.getDesc()
11
+ .replace(/ \d{4}$/, '')
12
+ .replace(/ \(CH''M\)$/, '')
13
+ .replace(/ \(observed\)$/, '')
14
+ .replace(/ \(Hoshana Raba\)$/, '')
15
+ .replace(/ [IV]+$/, '')
16
+ .replace(/: \d Candles?$/, '')
17
+ .replace(/: 8th Day$/, '')
18
+ .replace(/^Erev /, '');
19
+ }
20
+ url() {
21
+ const year = this.getDate().greg().getFullYear();
22
+ if (year < 100) {
23
+ return undefined;
24
+ }
25
+ const url = 'https://www.hebcal.com/holidays/' +
26
+ this.basename().toLowerCase().replace(/'/g, '').replace(/ /g, '-') +
27
+ '-' +
28
+ this.urlDateSuffix();
29
+ return this.getFlags() & flags.IL_ONLY ? url + '?i=on' : url;
30
+ }
31
+ urlDateSuffix() {
32
+ const year = this.getDate().greg().getFullYear();
33
+ return String(year);
34
+ }
35
+ getEmoji() {
36
+ if (this.emoji) {
37
+ return this.emoji;
38
+ }
39
+ else if (this.getFlags() & flags.SPECIAL_SHABBAT) {
40
+ return '🕍';
41
+ }
42
+ else {
43
+ return '✡️';
44
+ }
45
+ }
46
+ getCategories() {
47
+ if (this.cholHaMoedDay) {
48
+ return ['holiday', 'major', 'cholhamoed'];
49
+ }
50
+ const cats = super.getCategories();
51
+ if (cats[0] !== 'unknown') {
52
+ return cats;
53
+ }
54
+ // Don't depend on flags.MINOR_HOLIDAY always being set. Look for minor holidays.
55
+ const desc = this.getDesc();
56
+ switch (desc) {
57
+ case holidayDesc.LAG_BAOMER:
58
+ case holidayDesc.LEIL_SELICHOT:
59
+ case holidayDesc.PESACH_SHENI:
60
+ case holidayDesc.EREV_PURIM:
61
+ case holidayDesc.PURIM_KATAN:
62
+ case holidayDesc.SHUSHAN_PURIM:
63
+ case holidayDesc.TU_BAV:
64
+ case holidayDesc.TU_BISHVAT:
65
+ case holidayDesc.ROSH_HASHANA_LABEHEMOT:
66
+ return ['holiday', 'minor'];
67
+ }
68
+ return ['holiday', 'major'];
69
+ }
70
+ /**
71
+ * Returns (translated) description of this event
72
+ * @param [locale] Optional locale name (defaults to active locale).
73
+ */
74
+ render(locale) {
75
+ const str = super.render(locale);
76
+ return str.replace(/'/g, '’');
77
+ }
78
+ /**
79
+ * Returns a brief (translated) description of this event.
80
+ * For most events, this is the same as render(). For some events, it procudes
81
+ * a shorter text (e.g. without a time or added description).
82
+ * @param [locale] Optional locale name (defaults to active locale).
83
+ */
84
+ renderBrief(locale) {
85
+ const str = super.renderBrief(locale);
86
+ return str.replace(/'/g, '’');
87
+ }
88
+ /**
89
+ * Makes a clone of this Event object
90
+ */
91
+ clone() {
92
+ const ev = new HolidayEvent(this.date, this.desc, this.mask);
93
+ for (const property in this) {
94
+ // eslint-disable-next-line no-prototype-builtins
95
+ if (this.hasOwnProperty(property)) {
96
+ Object.defineProperty(ev, property, { value: this[property] });
97
+ }
98
+ }
99
+ return ev;
100
+ }
101
+ }
102
+ /**
103
+ * Because Asara B'Tevet often occurs twice in the same Gregorian year,
104
+ * we subclass HolidayEvent to override the `url()` method.
105
+ */
106
+ class AsaraBTevetEvent extends HolidayEvent {
107
+ urlDateSuffix() {
108
+ const isoDate = isoDateString(this.getDate().greg());
109
+ return isoDate.replace(/-/g, '');
110
+ }
111
+ }
112
+ /** Represents Rosh Hashana, the Jewish New Year */
113
+ class RoshHashanaEvent extends HolidayEvent {
114
+ /**
115
+ * @private
116
+ * @param date Hebrew date event occurs
117
+ * @param hyear Hebrew year
118
+ * @param mask optional holiday flags
119
+ */
120
+ constructor(date, hyear, mask) {
121
+ super(date, `Rosh Hashana ${hyear}`, mask);
122
+ this.hyear = hyear;
123
+ }
124
+ /**
125
+ * Returns (translated) description of this event
126
+ * @param [locale] Optional locale name (defaults to active locale).
127
+ */
128
+ render(locale) {
129
+ return Locale.gettext('Rosh Hashana', locale) + ' ' + this.hyear;
130
+ }
131
+ getEmoji() {
132
+ return '🍏🍯';
133
+ }
134
+ }
135
+ const roshChodeshStr = 'Rosh Chodesh';
136
+ /** Represents Rosh Chodesh, the beginning of a new month */
137
+ class RoshChodeshEvent extends HolidayEvent {
138
+ /**
139
+ * Constructs Rosh Chodesh event
140
+ * @param date Hebrew date event occurs
141
+ * @param monthName Hebrew month name (not translated)
142
+ */
143
+ constructor(date, monthName) {
144
+ super(date, `${roshChodeshStr} ${monthName}`, flags.ROSH_CHODESH);
145
+ }
146
+ /**
147
+ * Returns (translated) description of this event
148
+ * @param [locale] Optional locale name (defaults to active locale).
149
+ */
150
+ render(locale) {
151
+ const monthName = this.getDesc().substring(roshChodeshStr.length + 1);
152
+ const monthName0 = Locale.gettext(monthName, locale);
153
+ const monthName1 = monthName0.replace(/'/g, '’');
154
+ return Locale.gettext(roshChodeshStr, locale) + ' ' + monthName1;
155
+ }
156
+ basename() {
157
+ return this.getDesc();
158
+ }
159
+ getEmoji() {
160
+ return this.emoji || '🌒';
161
+ }
162
+ }
163
+
164
+ export { AsaraBTevetEvent, HolidayEvent, RoshChodeshEvent, RoshHashanaEvent };
165
+ //# sourceMappingURL=HolidayEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HolidayEvent.js","sources":["../../../src/HolidayEvent.ts"],"sourcesContent":["import {HDate, Locale, isoDateString} from '@hebcal/hdate';\nimport {Event, flags} from './event';\nimport {holidayDesc as hdesc} from './staticHolidays';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\n/** Represents a built-in holiday like Pesach, Purim or Tu BiShvat */\nexport class HolidayEvent extends Event {\n /** During Sukkot or Pesach */\n cholHaMoedDay?: number;\n chanukahDay?: 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 observed?: boolean;\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 url(): string | undefined {\n const year = this.getDate().greg().getFullYear();\n if (year < 100) {\n return undefined;\n }\n const url =\n 'https://www.hebcal.com/holidays/' +\n this.basename().toLowerCase().replace(/'/g, '').replace(/ /g, '-') +\n '-' +\n this.urlDateSuffix();\n return this.getFlags() & flags.IL_ONLY ? url + '?i=on' : url;\n }\n\n urlDateSuffix(): string {\n const year = this.getDate().greg().getFullYear();\n return String(year);\n }\n\n getEmoji(): string {\n if (this.emoji) {\n return this.emoji;\n } else if (this.getFlags() & flags.SPECIAL_SHABBAT) {\n return '🕍';\n } else {\n return '✡️';\n }\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 active locale).\n */\n render(locale?: string): string {\n const str = super.render(locale);\n return str.replace(/'/g, '’');\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 active locale).\n */\n renderBrief(locale?: string): string {\n const str = super.renderBrief(locale);\n return str.replace(/'/g, '’');\n }\n /**\n * Makes a clone of this Event object\n */\n clone(): HolidayEvent {\n const ev = new HolidayEvent(this.date, this.desc, this.mask);\n for (const property in this) {\n // eslint-disable-next-line no-prototype-builtins\n if (this.hasOwnProperty(property)) {\n Object.defineProperty(ev, property, {value: this[property]});\n }\n }\n return ev;\n }\n}\n\n/**\n * Because Asara B'Tevet often occurs twice in the same Gregorian year,\n * we subclass HolidayEvent to override the `url()` method.\n */\nexport class AsaraBTevetEvent extends HolidayEvent {\n urlDateSuffix(): string {\n const isoDate = isoDateString(this.getDate().greg());\n return isoDate.replace(/-/g, '');\n }\n}\n\n/** Represents Rosh Hashana, the Jewish New Year */\nexport class RoshHashanaEvent extends HolidayEvent {\n private readonly hyear: number;\n /**\n * @private\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 active 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 active 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 = monthName0.replace(/'/g, '’');\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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"}
@@ -0,0 +1,25 @@
1
+ import { HDate } from '@hebcal/hdate';
2
+ import { Event } from './event';
3
+ import './locale';
4
+ /** Represents Mevarchim haChodesh, the announcement of the new month */
5
+ export declare class MevarchimChodeshEvent extends Event {
6
+ readonly monthName: string;
7
+ /**
8
+ * Constructs Mevarchim haChodesh event
9
+ * @param date Hebrew date event occurs
10
+ * @param monthName Hebrew month name (not translated)
11
+ * @param [memo]
12
+ */
13
+ constructor(date: HDate, monthName: string, memo: string);
14
+ basename(): string;
15
+ /**
16
+ * Returns (translated) description of this event
17
+ * @param [locale] Optional locale name (defaults to active locale).
18
+ */
19
+ render(locale?: string): string;
20
+ /**
21
+ * Returns (translated) description of this event
22
+ * @param [locale] Optional locale name (defaults to active locale).
23
+ */
24
+ renderBrief(locale?: string): string;
25
+ }
@@ -0,0 +1,54 @@
1
+ /*! @hebcal/core v5.7.1 */
2
+ import { HDate, months, Locale } from '@hebcal/hdate';
3
+ import { Event, flags } from './event.js';
4
+ import { Molad } from './molad.js';
5
+ import './locale.js';
6
+
7
+ const mevarchimChodeshStr = 'Shabbat Mevarchim Chodesh';
8
+ /** Represents Mevarchim haChodesh, the announcement of the new month */
9
+ class MevarchimChodeshEvent extends Event {
10
+ /**
11
+ * Constructs Mevarchim haChodesh event
12
+ * @param date Hebrew date event occurs
13
+ * @param monthName Hebrew month name (not translated)
14
+ * @param [memo]
15
+ */
16
+ constructor(date, monthName, memo) {
17
+ super(date, `${mevarchimChodeshStr} ${monthName}`, flags.SHABBAT_MEVARCHIM);
18
+ this.monthName = monthName;
19
+ if (memo) {
20
+ this.memo = memo;
21
+ }
22
+ else {
23
+ const hyear = date.getFullYear();
24
+ const hmonth = date.getMonth();
25
+ const monNext = hmonth === HDate.monthsInYear(hyear) ? months.NISAN : hmonth + 1;
26
+ const molad = new Molad(hyear, monNext);
27
+ this.memo = molad.render('en', { hour12: false });
28
+ }
29
+ }
30
+ basename() {
31
+ return this.getDesc();
32
+ }
33
+ /**
34
+ * Returns (translated) description of this event
35
+ * @param [locale] Optional locale name (defaults to active locale).
36
+ */
37
+ render(locale) {
38
+ const monthName0 = Locale.gettext(this.monthName, locale);
39
+ const monthName = monthName0.replace(/'/g, '’');
40
+ return Locale.gettext(mevarchimChodeshStr, locale) + ' ' + monthName;
41
+ }
42
+ /**
43
+ * Returns (translated) description of this event
44
+ * @param [locale] Optional locale name (defaults to active locale).
45
+ */
46
+ renderBrief(locale) {
47
+ const str = this.render(locale);
48
+ const space = str.indexOf(' ');
49
+ return str.substring(space + 1);
50
+ }
51
+ }
52
+
53
+ export { MevarchimChodeshEvent };
54
+ //# sourceMappingURL=MevarchimChodeshEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MevarchimChodeshEvent.js","sources":["../../../src/MevarchimChodeshEvent.ts"],"sourcesContent":["import {HDate, Locale, months} from '@hebcal/hdate';\nimport {Event, flags} from './event';\nimport {Molad} from './molad';\nimport './locale'; // 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]\n */\n constructor(date: HDate, monthName: string, memo: string) {\n super(date, `${mevarchimChodeshStr} ${monthName}`, flags.SHABBAT_MEVARCHIM);\n this.monthName = monthName;\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 active locale).\n */\n render(locale?: string): string {\n const monthName0 = Locale.gettext(this.monthName, locale);\n const monthName = monthName0.replace(/'/g, '’');\n return Locale.gettext(mevarchimChodeshStr, locale) + ' ' + monthName;\n }\n /**\n * Returns (translated) description of this event\n * @param [locale] Optional locale name (defaults to active 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":";;;;;;AAKA,MAAM,mBAAmB,GAAG,2BAA2B;AAEvD;AACM,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AAE9C;;;;;AAKG;AACH,IAAA,WAAA,CAAY,IAAW,EAAE,SAAiB,EAAE,IAAY,EAAA;AACtD,QAAA,KAAK,CAAC,IAAI,EAAE,CAAA,EAAG,mBAAmB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAC3E,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC1B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;aACX;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;;;IAInD,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;;AAEvB;;;AAGG;AACH,IAAA,MAAM,CAAC,MAAe,EAAA;AACpB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QACzD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/C,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,SAAS;;AAEtE;;;AAGG;AACH,IAAA,WAAW,CAAC,MAAe,EAAA;QACzB,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;;AAElC;;;;"}
@@ -0,0 +1,23 @@
1
+ import { Event } from './event';
2
+ import { HDate } from '@hebcal/hdate';
3
+ import './locale';
4
+ /**
5
+ * Represents one of 54 weekly Torah portions, always on a Saturday
6
+ */
7
+ export declare class ParshaEvent extends Event {
8
+ readonly parsha: string[];
9
+ readonly il: boolean;
10
+ readonly num: number | number[];
11
+ /**
12
+ * @param parsha - untranslated name of single or double parsha,
13
+ * such as ['Bereshit'] or ['Achrei Mot', 'Kedoshim']
14
+ */
15
+ constructor(date: HDate, parsha: string[], il?: boolean, num?: number | number[]);
16
+ /**
17
+ * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
18
+ */
19
+ render(locale?: string): string;
20
+ basename(): string;
21
+ url(): string | undefined;
22
+ urlDateSuffix(): string;
23
+ }
@@ -0,0 +1,53 @@
1
+ /*! @hebcal/core v5.7.1 */
2
+ import { Event, flags } from './event.js';
3
+ import { isoDateString } from '@hebcal/hdate';
4
+ import { renderParshaName } from './parshaName.js';
5
+ import './locale.js';
6
+
7
+ /**
8
+ * Represents one of 54 weekly Torah portions, always on a Saturday
9
+ */
10
+ class ParshaEvent extends Event {
11
+ /**
12
+ * @param parsha - untranslated name of single or double parsha,
13
+ * such as ['Bereshit'] or ['Achrei Mot', 'Kedoshim']
14
+ */
15
+ constructor(date, parsha, il = false, num = -1) {
16
+ if (!Array.isArray(parsha) || parsha.length === 0 || parsha.length > 2) {
17
+ throw new TypeError('Bad parsha argument');
18
+ }
19
+ const desc = 'Parashat ' + parsha.join('-');
20
+ super(date, desc, flags.PARSHA_HASHAVUA);
21
+ this.parsha = parsha;
22
+ this.il = Boolean(il);
23
+ this.num = num || -1;
24
+ }
25
+ /**
26
+ * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
27
+ */
28
+ render(locale) {
29
+ return renderParshaName(this.parsha, locale);
30
+ }
31
+ basename() {
32
+ return this.parsha.join('-');
33
+ }
34
+ url() {
35
+ const year = this.getDate().greg().getFullYear();
36
+ if (year < 100) {
37
+ return undefined;
38
+ }
39
+ const dt = this.urlDateSuffix();
40
+ const url = 'https://www.hebcal.com/sedrot/' +
41
+ this.basename().toLowerCase().replace(/'/g, '').replace(/ /g, '-') +
42
+ '-' +
43
+ dt;
44
+ return this.il ? url + '?i=on' : url;
45
+ }
46
+ urlDateSuffix() {
47
+ const isoDate = isoDateString(this.getDate().greg());
48
+ return isoDate.replace(/-/g, '');
49
+ }
50
+ }
51
+
52
+ export { ParshaEvent };
53
+ //# sourceMappingURL=ParshaEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParshaEvent.js","sources":["../../../src/ParshaEvent.ts"],"sourcesContent":["import {Event, flags} from './event';\nimport {HDate, isoDateString} from '@hebcal/hdate';\nimport {renderParshaName} from './parshaName';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\n/**\n * Represents one of 54 weekly Torah portions, always on a Saturday\n */\nexport class ParshaEvent extends Event {\n readonly parsha: string[];\n readonly il: boolean;\n readonly num: number | number[];\n /**\n * @param parsha - untranslated name of single or double parsha,\n * such as ['Bereshit'] or ['Achrei Mot', 'Kedoshim']\n */\n constructor(\n date: HDate,\n parsha: string[],\n il = false,\n num: number | number[] = -1\n ) {\n if (!Array.isArray(parsha) || parsha.length === 0 || parsha.length > 2) {\n throw new TypeError('Bad parsha argument');\n }\n const desc = 'Parashat ' + parsha.join('-');\n super(date, desc, flags.PARSHA_HASHAVUA);\n this.parsha = parsha;\n this.il = Boolean(il);\n this.num = num || -1;\n }\n /**\n * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.\n */\n render(locale?: string): string {\n return renderParshaName(this.parsha, locale);\n }\n\n basename(): string {\n return this.parsha.join('-');\n }\n\n url(): string | undefined {\n const year = this.getDate().greg().getFullYear();\n if (year < 100) {\n return undefined;\n }\n const dt = this.urlDateSuffix();\n const url =\n 'https://www.hebcal.com/sedrot/' +\n this.basename().toLowerCase().replace(/'/g, '').replace(/ /g, '-') +\n '-' +\n dt;\n return this.il ? url + '?i=on' : url;\n }\n\n urlDateSuffix(): string {\n const isoDate = isoDateString(this.getDate().greg());\n return isoDate.replace(/-/g, '');\n }\n}\n"],"names":[],"mappings":";;;;;;AAKA;;AAEG;AACG,MAAO,WAAY,SAAQ,KAAK,CAAA;AAIpC;;;AAGG;IACH,WACE,CAAA,IAAW,EACX,MAAgB,EAChB,EAAE,GAAG,KAAK,EACV,GAAyB,GAAA,CAAC,CAAC,EAAA;QAE3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACtE,YAAA,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC;;QAE5C,MAAM,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;AACxC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;;AAEtB;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAA;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;;IAG9C,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG9B,GAAG,GAAA;AACD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAChD,QAAA,IAAI,IAAI,GAAG,GAAG,EAAE;AACd,YAAA,OAAO,SAAS;;AAElB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;QAC/B,MAAM,GAAG,GACP,gCAAgC;AAChC,YAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YAClE,GAAG;AACH,YAAA,EAAE;AACJ,QAAA,OAAO,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG;;IAGtC,aAAa,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;;AAEnC;;;;"}
@@ -0,0 +1,47 @@
1
+ import { HDate } from '@hebcal/hdate';
2
+ import { CalOptions } from './CalOptions';
3
+ import { Location } from './location';
4
+ import { Event } from './event';
5
+ import './locale';
6
+ /** An event that has an `eventTime` and `eventTimeStr` */
7
+ export declare class TimedEvent extends Event {
8
+ readonly eventTime: Date;
9
+ readonly location: Location;
10
+ readonly eventTimeStr: string;
11
+ readonly fmtTime: string;
12
+ readonly linkedEvent?: Event;
13
+ /**
14
+ * @param desc Description (not translated)
15
+ */
16
+ constructor(date: HDate, desc: string, mask: number, eventTime: Date, location: Location, linkedEvent?: Event, options?: CalOptions);
17
+ /**
18
+ * @param [locale] Optional locale name (defaults to active locale).
19
+ */
20
+ render(locale?: string): string;
21
+ /**
22
+ * Returns translation of "Candle lighting" without the time.
23
+ * @param [locale] Optional locale name (defaults to active locale).
24
+ */
25
+ renderBrief(locale?: string): string;
26
+ getCategories(): string[];
27
+ }
28
+ /** Candle lighting before Shabbat or holiday */
29
+ export declare class CandleLightingEvent extends TimedEvent {
30
+ constructor(date: HDate, mask: number, eventTime: Date, location: Location, linkedEvent?: Event, options?: CalOptions);
31
+ getEmoji(): string;
32
+ }
33
+ /** Havdalah after Shabbat or holiday */
34
+ export declare class HavdalahEvent extends TimedEvent {
35
+ private readonly havdalahMins?;
36
+ constructor(date: HDate, mask: number, eventTime: Date, location: Location, havdalahMins?: number, linkedEvent?: Event, options?: CalOptions);
37
+ /**
38
+ * @param [locale] Optional locale name (defaults to active locale).
39
+ */
40
+ render(locale?: string): string;
41
+ /**
42
+ * Returns translation of "Havdalah" without the time.
43
+ * @param [locale] Optional locale name (defaults to active locale).
44
+ */
45
+ renderBrief(locale?: string): string;
46
+ getEmoji(): string;
47
+ }
@@ -0,0 +1,97 @@
1
+ /*! @hebcal/core v5.7.1 */
2
+ import { Locale } from '@hebcal/hdate';
3
+ import { Event } from './event.js';
4
+ import { reformatTimeStr } from './reformatTimeStr.js';
5
+ import { Zmanim } from './zmanim.js';
6
+ import './locale.js';
7
+
8
+ /** An event that has an `eventTime` and `eventTimeStr` */
9
+ class TimedEvent extends Event {
10
+ /**
11
+ * @param desc Description (not translated)
12
+ */
13
+ constructor(date, desc, mask, eventTime, location, linkedEvent, options) {
14
+ super(date, desc, mask);
15
+ this.eventTime = Zmanim.roundTime(eventTime);
16
+ this.location = location;
17
+ const timeFormat = location.getTimeFormatter();
18
+ this.eventTimeStr = Zmanim.formatTime(this.eventTime, timeFormat);
19
+ const opts = Object.assign(Object.assign({}, options), { location });
20
+ this.fmtTime = reformatTimeStr(this.eventTimeStr, 'pm', opts);
21
+ if (typeof linkedEvent !== 'undefined') {
22
+ this.linkedEvent = linkedEvent;
23
+ }
24
+ }
25
+ /**
26
+ * @param [locale] Optional locale name (defaults to active locale).
27
+ */
28
+ render(locale) {
29
+ return Locale.gettext(this.getDesc(), locale) + ': ' + this.fmtTime;
30
+ }
31
+ /**
32
+ * Returns translation of "Candle lighting" without the time.
33
+ * @param [locale] Optional locale name (defaults to active locale).
34
+ */
35
+ renderBrief(locale) {
36
+ return Locale.gettext(this.getDesc(), locale);
37
+ }
38
+ getCategories() {
39
+ const desc = this.getDesc();
40
+ switch (desc) {
41
+ // LIGHT_CANDLES or LIGHT_CANDLES_TZEIS
42
+ case 'Candle lighting':
43
+ return ['candles'];
44
+ // YOM_TOV_ENDS
45
+ case 'Havdalah':
46
+ return ['havdalah'];
47
+ // flags.MINOR_FAST or flags.MAJOR_FAST
48
+ case 'Fast begins':
49
+ case 'Fast ends':
50
+ return ['zmanim', 'fast'];
51
+ }
52
+ /* NOTREACHED */
53
+ return ['unknown'];
54
+ }
55
+ }
56
+ /** Candle lighting before Shabbat or holiday */
57
+ class CandleLightingEvent extends TimedEvent {
58
+ constructor(date, mask, eventTime, location, linkedEvent, options) {
59
+ super(date, 'Candle lighting', mask, eventTime, location, linkedEvent, options);
60
+ }
61
+ getEmoji() {
62
+ return '🕯️';
63
+ }
64
+ }
65
+ /** Havdalah after Shabbat or holiday */
66
+ class HavdalahEvent extends TimedEvent {
67
+ constructor(date, mask, eventTime, location, havdalahMins, linkedEvent, options) {
68
+ super(date, 'Havdalah', mask, eventTime, location, linkedEvent, options);
69
+ if (havdalahMins) {
70
+ this.havdalahMins = havdalahMins;
71
+ }
72
+ }
73
+ /**
74
+ * @param [locale] Optional locale name (defaults to active locale).
75
+ */
76
+ render(locale) {
77
+ return this.renderBrief(locale) + ': ' + this.fmtTime;
78
+ }
79
+ /**
80
+ * Returns translation of "Havdalah" without the time.
81
+ * @param [locale] Optional locale name (defaults to active locale).
82
+ */
83
+ renderBrief(locale) {
84
+ let str = Locale.gettext(this.getDesc(), locale);
85
+ if (this.havdalahMins) {
86
+ const min = Locale.gettext('min', locale);
87
+ str += ` (${this.havdalahMins} ${min})`;
88
+ }
89
+ return str;
90
+ }
91
+ getEmoji() {
92
+ return '✨';
93
+ }
94
+ }
95
+
96
+ export { CandleLightingEvent, HavdalahEvent, TimedEvent };
97
+ //# sourceMappingURL=TimedEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimedEvent.js","sources":["../../../src/TimedEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions';\nimport {Location} from './location';\nimport {Event} from './event';\nimport {reformatTimeStr} from './reformatTimeStr';\nimport {Zmanim} from './zmanim';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\n/** An event that has an `eventTime` and `eventTimeStr` */\nexport class TimedEvent extends Event {\n readonly eventTime: Date;\n readonly location: Location;\n readonly eventTimeStr: string;\n readonly fmtTime: string;\n readonly linkedEvent?: Event;\n /**\n * @param desc Description (not translated)\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 (typeof linkedEvent !== 'undefined') {\n this.linkedEvent = linkedEvent;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to active 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 active 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 'Fast begins':\n case 'Fast ends':\n return ['zmanim', 'fast'];\n }\n /* NOTREACHED */\n return ['unknown'];\n }\n}\n\n/** Candle lighting before Shabbat or holiday */\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(\n date,\n 'Candle lighting',\n mask,\n eventTime,\n location,\n linkedEvent,\n options\n );\n }\n\n getEmoji(): string {\n return '🕯️';\n }\n}\n\n/** Havdalah after Shabbat or holiday */\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 active 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 active 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":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { HDate } from '@hebcal/hdate';
2
+ import { HolidayEvent } from './HolidayEvent';
3
+ import './locale';
4
+ /** YKK is minor day of atonement on the day preceeding each Rosh Chodesh */
5
+ export declare class YomKippurKatanEvent extends HolidayEvent {
6
+ private readonly nextMonthName;
7
+ /**
8
+ * @private
9
+ * @param date Hebrew date event occurs
10
+ * @param nextMonthName name of the upcoming month
11
+ */
12
+ constructor(date: HDate, nextMonthName: string);
13
+ basename(): string;
14
+ /**
15
+ * @param [locale] Optional locale name (defaults to active locale).
16
+ */
17
+ render(locale?: string): string;
18
+ /**
19
+ * @param [locale] Optional locale name (defaults to active locale).
20
+ */
21
+ renderBrief(locale?: string): string;
22
+ url(): string | undefined;
23
+ }
@@ -0,0 +1,43 @@
1
+ /*! @hebcal/core v5.7.1 */
2
+ import { Locale } from '@hebcal/hdate';
3
+ import { flags } from './event.js';
4
+ import { HolidayEvent } from './HolidayEvent.js';
5
+ import './locale.js';
6
+
7
+ const ykk = 'Yom Kippur Katan';
8
+ /** YKK is minor day of atonement on the day preceeding each Rosh Chodesh */
9
+ class YomKippurKatanEvent extends HolidayEvent {
10
+ /**
11
+ * @private
12
+ * @param date Hebrew date event occurs
13
+ * @param nextMonthName name of the upcoming month
14
+ */
15
+ constructor(date, nextMonthName) {
16
+ super(date, `${ykk} ${nextMonthName}`, flags.MINOR_FAST | flags.YOM_KIPPUR_KATAN);
17
+ this.nextMonthName = nextMonthName;
18
+ this.memo = `Minor Day of Atonement on the day preceeding Rosh Chodesh ${nextMonthName}`;
19
+ }
20
+ basename() {
21
+ return this.getDesc();
22
+ }
23
+ /**
24
+ * @param [locale] Optional locale name (defaults to active locale).
25
+ */
26
+ render(locale) {
27
+ const monthName0 = Locale.gettext(this.nextMonthName, locale);
28
+ const monthName = monthName0.replace(/'/g, '’');
29
+ return Locale.gettext(ykk, locale) + ' ' + monthName;
30
+ }
31
+ /**
32
+ * @param [locale] Optional locale name (defaults to active locale).
33
+ */
34
+ renderBrief(locale) {
35
+ return Locale.gettext(ykk, locale);
36
+ }
37
+ url() {
38
+ return undefined;
39
+ }
40
+ }
41
+
42
+ export { YomKippurKatanEvent };
43
+ //# sourceMappingURL=YomKippurKatanEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YomKippurKatanEvent.js","sources":["../../../src/YomKippurKatanEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {flags} from './event';\nimport {HolidayEvent} from './HolidayEvent';\nimport './locale'; // 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 * @private\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 active locale).\n */\n render(locale?: string): string {\n const monthName0 = Locale.gettext(this.nextMonthName, locale);\n const monthName = monthName0.replace(/'/g, '’');\n return Locale.gettext(ykk, locale) + ' ' + monthName;\n }\n /**\n * @param [locale] Optional locale name (defaults to active 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":";;;;;;AAKA,MAAM,GAAG,GAAG,kBAAkB;AAE9B;AACM,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAEnD;;;;AAIG;IACH,WAAY,CAAA,IAAW,EAAE,aAAqB,EAAA;AAC5C,QAAA,KAAK,CACH,IAAI,EACJ,CAAG,EAAA,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,CAA6D,0DAAA,EAAA,aAAa,EAAE;;IAG1F,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;;AAEvB;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAA;AACpB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAC7D,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/C,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,SAAS;;AAEtD;;AAEG;AACH,IAAA,WAAW,CAAC,MAAe,EAAA;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;;IAGpC,GAAG,GAAA;AACD,QAAA,OAAO,SAAS;;AAEnB;;;;"}