/** * @license BadiDate v3.0.2 * (c) 2018 Jan Greis * licensed under MIT */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('luxon')) : typeof define === 'function' && define.amd ? define(['exports', 'luxon'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.window = global.window || {}, global.luxon)); }(this, (function (exports, luxon) { 'use strict'; const month = { 1: 'Bahá', 2: 'Jalál', 3: 'Jamál', 4: '‘Aẓamat', 5: 'Núr', 6: 'Raḥmat', 7: 'Kalimát', 8: 'Kamál', 9: 'Asmá’', 10: '‘Izzat', 11: 'Ma_sh_íyyat', 12: '‘Ilm', 13: 'Qudrat', 14: 'Qawl', 15: 'Masá’il', 16: '_Sh_araf', 17: 'Sulṭán', 18: 'Mulk', 19: '‘Alá’', 20: 'Ayyám-i-Há', }; const monthL = { 1: 'Splendour', 2: 'Glory', 3: 'Beauty', 4: 'Grandeur', 5: 'Light', 6: 'Mercy', 7: 'Words', 8: 'Perfection', 9: 'Names', 10: 'Might', 11: 'Will', 12: 'Knowledge', 13: 'Power', 14: 'Speech', 15: 'Questions', 16: 'Honour', 17: 'Sovereignty', 18: 'Dominion', 19: 'Loftiness', 20: 'Ayyám-i-Há', }; const holyDay = { 1: 'Naw-Rúz', 2: 'First day of Riḍván', 3: 'Ninth day of Riḍván', 4: 'Twelfth day of Riḍván', 5: 'Declaration of the Báb', 6: 'Ascension of Bahá’u’lláh', 7: 'Martyrdom of the Báb', 8: 'Birth of the Báb', 9: 'Birth of Bahá’u’lláh', 10: 'Day of the Covenant', 11: 'Ascension of ‘Abdu’l-Bahá', }; // CAREFUL: Numbering corresponds to Badí' week, i.e. 1 is Jalál (-> Saturday) const weekday = { 1: 'Jalál', 2: 'Jamál', 3: 'Kamál', 4: 'Fiḍál', 5: '‘Idál', 6: 'Istijlál', 7: 'Istiqlál', }; const weekdayAbbr3 = { 1: 'Jal', 2: 'Jam', 3: 'Kam', 4: 'Fiḍ', 5: '‘Idá', 6: 'Isj', 7: 'Isq', }; const weekdayAbbr2 = { 1: 'Jl', 2: 'Jm', 3: 'Ka', 4: 'Fi', 5: '‘Id', 6: 'Ij', 7: 'Iq', }; const weekdayL = { 1: 'Glory', 2: 'Beauty', 3: 'Perfection', 4: 'Grace', 5: 'Justice', 6: 'Majesty', 7: 'Independence', }; const yearInVahid = { 1: 'Alif', 2: 'Bá’', 3: 'Ab', 4: 'Dál', 5: 'Báb', 6: 'Váv', 7: 'Abad', 8: 'Jád', 9: 'Bahá', 10: 'Ḥubb', 11: 'Bahháj', 12: 'Javáb', 13: 'Aḥad', 14: 'Vahháb', 15: 'Vidád', 16: 'Badí‘', 17: 'Bahí', 18: 'Abhá', 19: 'Váḥid', }; const vahid = 'Váḥid'; const kulliShay = 'Kull-i-_Sh_ay’'; const BE = 'B.E.'; const badiCalendar = 'Badí‘ Calendar'; const unicodeCharForZero = '0'; const defaultFormat = 'd MM+ y BE'; var en = /*#__PURE__*/Object.freeze({ __proto__: null, month: month, monthL: monthL, holyDay: holyDay, weekday: weekday, weekdayAbbr3: weekdayAbbr3, weekdayAbbr2: weekdayAbbr2, weekdayL: weekdayL, yearInVahid: yearInVahid, vahid: vahid, kulliShay: kulliShay, BE: BE, badiCalendar: badiCalendar, unicodeCharForZero: unicodeCharForZero, defaultFormat: defaultFormat }); const month$1 = { 1: 'البهاء', 2: 'الجلال', 3: 'الجمال', 4: 'العظمة', 5: 'النور', 6: 'الرحمة', 7: 'الكلمات', 8: 'الكمال', 9: 'الأسماء', 10: 'العزّة', 11: 'المشية', 12: 'العلم', 13: 'القدرة', 14: 'القول', 15: 'المسائل', 16: 'الشرف', 17: 'السلطان', 18: 'الملك', 19: 'العلاء', 20: 'ايام الهاء', }; const monthL$1 = month$1; const holyDay$1 = { 1: 'عيد النَّيروز', 2: 'اليوم الأول من عيد الرِّضوان', 3: 'اليوم التاسع من عيد الرِّضوان', 4: 'اليوم الثاني عشر من عيد الرِّضوان', 5: 'يوم إعلان دعوة حضرة الباب', 6: 'يوم صعود حضرة بهاء الله', 7: 'يوم استشهاد حضرة الباب', 8: 'يوم ولادة حضرة الباب', 9: 'يوم ولادة حضرة بهاء الله', 10: 'يوم الميثاق', 11: 'يوم صعود حضرة عبد البهاء', }; const weekday$1 = { 1: 'الجلال', 2: 'الجمال', 3: 'الكمال', 4: 'الفضّال', 5: 'العدّال', 6: 'الأستجلال', 7: 'الاستقلال', }; const weekdayAbbr3$1 = { 1: 'جلا', 2: 'جما', 3: 'كما', 4: 'فضّا', 5: 'عدّا', 6: 'اسج', 7: 'اسق', }; const weekdayAbbr2$1 = { 1: 'جل', 2: 'جم', 3: 'كم', 4: 'فض', 5: 'عد', 6: 'اج', 7: 'اق', }; const weekdayL$1 = { 1: 'الجلال', 2: 'الجمال', 3: 'الكمال', 4: 'الفضّال', 5: 'العدّال', 6: 'الأستجلال', 7: 'أستقلال', }; const yearInVahid$1 = { 1: 'ألف', 2: 'باء', 3: 'أب', 4: 'دﺍﻝ', 5: 'باب', 6: 'وﺍو', 7: 'أبد', 8: 'جاد', 9: 'بهاء', 10: 'حب', 11: 'بهاج', 12: 'جواب', 13: 'احد', 14: 'وﻫﺎب', 15: 'وداد', 16: 'بدیع', 17: 'بهي', 18: 'ابهى', 19: 'واحد', }; const vahid$1 = 'واحد'; const kulliShay$1 = 'كل شيء'; const BE$1 = 'بديع'; const badiCalendar$1 = 'تقويم بديع'; const unicodeCharForZero$1 = '٠'; const defaultFormat$1 = '‏d MM y BE‏'; var ar = /*#__PURE__*/Object.freeze({ __proto__: null, month: month$1, monthL: monthL$1, holyDay: holyDay$1, weekday: weekday$1, weekdayAbbr3: weekdayAbbr3$1, weekdayAbbr2: weekdayAbbr2$1, weekdayL: weekdayL$1, yearInVahid: yearInVahid$1, vahid: vahid$1, kulliShay: kulliShay$1, BE: BE$1, badiCalendar: badiCalendar$1, unicodeCharForZero: unicodeCharForZero$1, defaultFormat: defaultFormat$1 }); const monthL$2 = { 1: 'Herrlichkeit', 2: 'Ruhm', 3: 'Schönheit', 4: 'Größe', 5: 'Licht', 6: 'Barmherzigkeit', 7: 'Worte', 8: 'Vollkommenheit', 9: 'Namen', 10: 'Macht', 11: 'Wille', 12: 'Wissen', 13: 'Kraft', 14: 'Sprache', 15: 'Fragen', 16: 'Ehre', 17: 'Souveränität', 18: 'Herrschaft', 19: 'Erhabenheit', 20: 'Ayyám-i-Há', }; const holyDay$2 = { 1: 'Naw-Rúz', 2: 'Erster Riḍván-Tag', 3: 'Neunter Riḍván-Tag', 4: 'Zwölfter Riḍván-Tag', 5: 'Erklärung des Báb', 6: 'Hinscheiden Bahá’u’lláhs', 7: 'Märtyrertod des Báb', 8: 'Geburt des Báb', 9: 'Geburt Bahá’u’lláhs', 10: 'Tag des Bundes', 11: 'Hinscheiden ‘Abdu’l-Bahás', }; const weekdayL$2 = { 1: 'Ruhm', 2: 'Schönheit', 3: 'Vollkommenheit', 4: 'Gnade', 5: 'Gerechtigkeit', 6: 'Majestät', 7: 'Unabhängigkeit', }; const BE$2 = 'B.E.'; const badiCalendar$2 = 'Badí‘ Kalender'; var de = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$2, holyDay: holyDay$2, weekdayL: weekdayL$2, BE: BE$2, badiCalendar: badiCalendar$2 }); const monthL$3 = { 1: 'Esplendor', 2: 'Gloria', 3: 'Belleza', 4: 'Grandeza', 5: 'Luz', 6: 'Misericordia', 7: 'Palabras', 8: 'Perfección', 9: 'Nombres', 10: 'Fuerza', 11: 'Voluntad', 12: 'Conocimiento', 13: 'Poder', 14: 'Discurso', 15: 'Preguntas', 16: 'Honor', 17: 'Soberanía', 18: 'Dominio', 19: 'Sublimidad', 20: 'Ayyám-i-Há', }; const holyDay$3 = { 1: 'Naw-Rúz', 2: 'Primer día de Riḍván', 3: 'Noveno día de Riḍván', 4: 'Duodécimo día de Riḍván', 5: 'Declaración del Báb', 6: 'Ascensión de Bahá’u’lláh', 7: 'Martirio del Báb', 8: 'Nacimiento del Báb', 9: 'Nacimiento de Bahá’u’lláh', 10: 'Día de la Alianza', 11: 'Fallecimiento de ‘Abdu’l-Bahá', }; const weekdayL$3 = { 1: 'Gloria', 2: 'Belleza', 3: 'Perfección', 4: 'Gracia', 5: 'Justicia', 6: 'Majestuosidad', 7: 'Independencia', }; const BE$3 = 'E.B.'; const badiCalendar$3 = 'Calendario Badí‘'; var es = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$3, holyDay: holyDay$3, weekdayL: weekdayL$3, BE: BE$3, badiCalendar: badiCalendar$3 }); const month$2 = { 1: 'البهاء', 2: 'الجلال', 3: 'الجمال', 4: 'العظمة', 5: 'النور', 6: 'الرحمة', 7: 'الكلمات', 8: 'الكمال', 9: 'الأسماء', 10: 'العزّة', 11: 'المشية', 12: 'العلم', 13: 'القدرة', 14: 'القول', 15: 'المسائل', 16: 'الشرف', 17: 'السلطان', 18: 'الملك', 19: 'العلاء', 20: 'ايام الهاء', }; const monthL$4 = { 1: 'بهاء', 2: 'جلال', 3: 'جمال', 4: 'عظمت', 5: 'نور', 6: 'رحمت', 7: 'كلمات', 8: 'كمال', 9: 'أسماء', 10: 'عزّت', 11: 'مشيت', 12: 'علم', 13: 'قدرت', 14: 'قول', 15: 'مسائل', 16: 'شرف', 17: 'سلطان', 18: 'ملك', 19: 'علاء', 20: 'ايام ها', }; const holyDay$4 = { 1: 'عید نوروز', 2: 'روز اوّل عید رضوان', 3: 'روز نهم عید رضوان', 4: 'روز دوازدهم عید رضوان', 5: 'بعثت حضرت باب', 6: 'صعود حضرت بهاالله', 7: 'شهادت حضرت اعلی', 8: 'تولّد حضرت اعلی', 9: 'تولّد حضرت بهالله', 10: 'روز عهد و میثاق', 11: 'صعود حضرت عبدالبها', }; const weekday$2 = { 1: 'یوم الجلال', 2: 'یوم الجمال', 3: 'یوم الكمال', 4: 'یوم الفضّال', 5: 'یوم العدّال', 6: 'یوم الأستجلال', 7: 'یوم الاستقلال', }; const weekdayAbbr3$2 = { 1: 'جلا', 2: 'جما', 3: 'كما', 4: 'فضّا', 5: 'عدّا', 6: 'اسج', 7: 'اسق', }; const weekdayAbbr2$2 = { 1: 'جل', 2: 'جم', 3: 'كم', 4: 'فض', 5: 'عد', 6: 'اج', 7: 'اق', }; const weekdayL$4 = { 1: 'جلال', 2: 'جمال', 3: 'كمال', 4: 'فضّال', 5: 'عدّال', 6: 'استجلال', 7: 'استقلال', }; const yearInVahid$2 = { 1: 'ألف', 2: 'باء', 3: 'أب', 4: 'دﺍﻝ', 5: 'باب', 6: 'وﺍو', 7: 'أبد', 8: 'جاد', 9: 'بهاء', 10: 'حب', 11: 'بهاج', 12: 'جواب', 13: 'احد', 14: 'وﻫﺎب', 15: 'وداد', 16: 'بدیع', 17: 'بهي', 18: 'ابهى', 19: 'واحد', }; const vahid$2 = 'واحد'; const kulliShay$2 = 'كل شيء'; const BE$4 = 'بديع'; const badiCalendar$4 = 'تقويم بديع'; const unicodeCharForZero$2 = '۰'; const defaultFormat$2 = '‏d MML y BE‏'; var fa = /*#__PURE__*/Object.freeze({ __proto__: null, month: month$2, monthL: monthL$4, holyDay: holyDay$4, weekday: weekday$2, weekdayAbbr3: weekdayAbbr3$2, weekdayAbbr2: weekdayAbbr2$2, weekdayL: weekdayL$4, yearInVahid: yearInVahid$2, vahid: vahid$2, kulliShay: kulliShay$2, BE: BE$4, badiCalendar: badiCalendar$4, unicodeCharForZero: unicodeCharForZero$2, defaultFormat: defaultFormat$2 }); const monthL$5 = { 1: 'Splendeur', 2: 'Gloire', 3: 'Beauté', 4: 'Grandeur', 5: 'Lumière', 6: 'Miséricorde', 7: 'Paroles', 8: 'Perfection', 9: 'Noms', 10: 'Puissance', 11: 'Volonté', 12: 'Connaissance', 13: 'Pouvoir', 14: 'Discours', 15: 'Questions', 16: 'Honneur', 17: 'Souveraineté', 18: 'Empire', 19: 'Élévation', 20: 'Ayyám-i-Há', }; const holyDay$5 = { 1: 'Naw-Rúz', 2: 'Premier jour de Riḍván', 3: 'Neuvième jour de Riḍván', 4: 'Douzième jour de Riḍván', 5: 'Déclaration du Báb', 6: 'Ascension de Bahá’u’lláh', 7: 'Martyre du Báb', 8: 'Naissance du Báb', 9: 'Naissance de Bahá’u’lláh', 10: 'Jour de l’Alliance', 11: 'Ascension de ‘Abdu’l-Bahá', }; const weekdayL$5 = { 1: 'Gloire', 2: 'Beauté', 3: 'Perfection', 4: 'Grâce', 5: 'Justice', 6: 'Majesté', 7: 'Indépendance', }; const BE$5 = 'E.B.'; const badiCalendar$5 = 'Calendrier Badí‘'; var fr = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$5, holyDay: holyDay$5, weekdayL: weekdayL$5, BE: BE$5, badiCalendar: badiCalendar$5 }); const monthL$6 = { 1: 'Spožums', 2: 'Slava', 3: 'Skaistums', 4: 'Dižums', 5: 'Gaisma', 6: 'Žēlastība', 7: 'Vārdi', 8: 'Pilnība', 9: 'Nosaukumi', 10: 'Varenība', 11: 'Griba', 12: 'Zināšanas', 13: 'Vara', 14: 'Runa', 15: 'Jautājumi', 16: 'Gods', 17: 'Suverenitāte', 18: 'Valdīšana', 19: 'Cēlums', 20: 'Ayyám-i-Há', }; const holyDay$6 = { 1: 'Naw-Rúz', 2: 'Riḍván pirmā diena', 3: 'Riḍván devītā diena', 4: 'Riḍván divpadsmitā diena', 5: 'Bába paziņojums', 6: 'Bahá’u’lláh Debessbraukšana', 7: 'Bába mocekļa nāve', 8: 'Bába dzimšanas diena', 9: 'Bahá’u’lláh dzimšanas diena', 10: 'Derības diena', 11: '‘Abdu’l-Bahá Debessbraukšana', }; const weekdayL$6 = { 1: 'Slava', 2: 'Skaistums', 3: 'Pilnība', 4: 'Žēlastība', 5: 'Taisnīgums', 6: 'Majestātiskums', 7: 'Neatkarība', }; const BE$6 = 'B.Ē.'; const badiCalendar$6 = 'Badí‘ kalendārs'; var lv = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$6, holyDay: holyDay$6, weekdayL: weekdayL$6, BE: BE$6, badiCalendar: badiCalendar$6 }); const monthL$7 = { 1: 'Pracht', 2: 'Heerlijkheid', 3: 'Schoonheid', 4: 'Grootheid', 5: 'Licht', 6: 'Barmhartigheid', 7: 'Woorden', 8: 'Volmaaktheid', 9: 'Namen', 10: 'Macht', 11: 'Wil', 12: 'Kennis', 13: 'Kracht', 14: 'Spraak', 15: 'Vragen', 16: 'Eer', 17: 'Soevereiniteit', 18: 'Heerschappij', 19: 'Verhevenheid', 20: 'Ayyám-i-Há', }; const holyDay$7 = { 1: 'Naw-Rúz', 2: 'Eerste dag van Riḍván', 3: 'Negende dag van Riḍván', 4: 'Twaalfde dag van Riḍván', 5: 'Verkondiging van de Báb', 6: 'Heengaan van Bahá’u’lláh', 7: 'Marteldood van de Báb', 8: 'Geboortedag van de Báb', 9: 'Geboortedag van Bahá’u’lláh', 10: 'Dag van het Verbond', 11: 'Heengaan van ‘Abdu’l-Bahá', }; const weekdayL$7 = { 1: 'Heerlijkheid', 2: 'Schoonheid', 3: 'Volmaaktheid', 4: 'Genade', 5: 'Gerechtigheid', 6: 'Majesteit', 7: 'Onafhankelijkheid', }; const BE$7 = 'B.E.'; const badiCalendar$7 = 'Badí‘-Kalender'; var nl = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$7, holyDay: holyDay$7, weekdayL: weekdayL$7, BE: BE$7, badiCalendar: badiCalendar$7 }); const monthL$8 = { 1: 'Esplendor', 2: 'Glória', 3: 'Beleza', 4: 'Grandeza', 5: 'Luz', 6: 'Miséricórdia', 7: 'Palavras', 8: 'Perfeição', 9: 'Nomes', 10: 'Potência', 11: 'Vontade', 12: 'Conhecimento', 13: 'Poder', 14: 'Discurso', 15: 'Perguntas', 16: 'Honra', 17: 'Soberania', 18: 'Domínio', 19: 'Sublimidade', 20: 'Ayyám-i-Há', }; const holyDay$8 = { 1: 'Naw-Rúz', 2: '1º dia do Riḍván', 3: '9º dia do Riḍván', 4: '12º dia do Riḍván', 5: 'Declaração do Báb', 6: 'Ascensão de Bahá’u’lláh', 7: 'Martírio do Báb', 8: 'Aniversário do Báb', 9: 'Aniversário de Bahá’u’lláh', 10: 'Dia do Convênio', 11: 'Ascensão de ‘Abdu’l-Bahá', }; const weekdayL$8 = { 1: 'Glória', 2: 'Beleza', 3: 'Perfeição', 4: 'Graça', 5: 'Justiça', 6: 'Majestade', 7: 'Independência', }; const BE$8 = 'E.B.'; const badiCalendar$8 = 'Calendário Badí‘'; var pt = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$8, holyDay: holyDay$8, weekdayL: weekdayL$8, BE: BE$8, badiCalendar: badiCalendar$8 }); const month$3 = { 1: 'Бахā', 2: 'Джалāл', 3: 'Джамāл', 4: '‘Аз̣амат', 5: 'Нӯр', 6: 'Рах̣мат', 7: 'Калимāт', 8: 'Камāл', 9: 'Асмā’', 10: '‘Иззат', 11: 'Машӣййат', 12: '‘Илм', 13: 'К̣удрат', 14: 'К̣аул', 15: 'Масā’ил', 16: 'Шараф', 17: 'Султ̣ан', 18: 'Мулк', 19: '‘Алā’', 20: 'Аййāм-и Хā', }; const monthL$9 = { 1: 'Великолепие', 2: 'Слава', 3: 'Красота', 4: 'Величие', 5: 'Свет', 6: 'Милость', 7: 'Слова', 8: 'Совершенство', 9: 'Имена', 10: 'Мощь', 11: 'Воля', 12: 'Знание', 13: 'Могущество', 14: 'Речь', 15: 'Вопросы', 16: 'Честь', 17: 'Владычество', 18: 'Господство', 19: 'Возвышенность', 20: 'Аййāм-и Хā', }; const holyDay$9 = { 1: 'Нау-Рӯз', 2: '1-й день Рид̣вāна', 3: '9-й день Рид̣вāна', 4: '12-й день Рид̣вāна', 5: 'Возвещение Баба', 6: 'Вознесение Бахауллы', 7: 'Мученическая Баба', 8: 'рождения Баба', 9: 'рождения Бахауллы', 10: 'День Завета', 11: 'Вознесение Абдул-Баха', }; const weekday$3 = { 1: 'Джалāл', 2: 'Джамāл', 3: 'Камāл', 4: 'Фид̣āл', 5: '‘Идāл', 6: 'Истиджлāл', 7: 'Истик̣лāл', }; const weekdayAbbr3$3 = { 1: 'Джл', 2: 'Джм', 3: 'Кам', 4: 'Фид̣', 5: '‘Идā', 6: 'Исд', 7: 'Иск̣', }; const weekdayAbbr2$3 = { 1: 'Дл', 2: 'Дм', 3: 'Ка', 4: 'Фи', 5: '‘Ид', 6: 'Ид', 7: 'Ик̣', }; const weekdayL$9 = { 1: 'Слава', 2: 'Красота', 3: 'Совершенство', 4: 'Благодать', 5: 'Справедливость', 6: 'Величие', 7: 'Независимость', }; const yearInVahid$3 = { 1: 'Алиф', 2: 'Бā’', 3: 'Аб', 4: 'Дāл', 5: 'Бāб', 6: 'Вāв', 7: 'Абад', 8: 'Джāд', 9: 'Бахā', 10: 'Х̣убб', 11: 'Баххāдж', 12: 'Джавāб', 13: 'Ах̣ад', 14: 'Ваххāб', 15: 'Видāд', 16: 'Бадӣ‘', 17: 'Бахӣ', 18: 'Абхā', 19: 'Вāх̣ид', }; const vahid$3 = 'Вāх̣ид'; const kulliShay$3 = 'кулл-и шай’'; const BE$9 = 'Э.Б.'; const badiCalendar$9 = 'Календарь Бадӣ‘'; var ru = /*#__PURE__*/Object.freeze({ __proto__: null, month: month$3, monthL: monthL$9, holyDay: holyDay$9, weekday: weekday$3, weekdayAbbr3: weekdayAbbr3$3, weekdayAbbr2: weekdayAbbr2$3, weekdayL: weekdayL$9, yearInVahid: yearInVahid$3, vahid: vahid$3, kulliShay: kulliShay$3, BE: BE$9, badiCalendar: badiCalendar$9 }); const monthL$a = { 1: 'Praktfullhet', 2: 'Härlighet', 3: 'Skönhet', 4: 'Storhet', 5: 'Ljus', 6: 'Barmhärtighet', 7: 'Ord', 8: 'Fullkomlighet', 9: 'Namn', 10: 'Makt', 11: 'Vilja', 12: 'Kunskap', 13: 'Kraft', 14: 'Tal', 15: 'Frågor', 16: 'Ära', 17: 'Överhöghet', 18: 'Herravälde', 19: 'Upphöjdhet', 20: 'Ayyám-i-Há', }; const holyDay$a = { 1: 'Naw-Rúz', 2: 'Första Riḍván', 3: 'Nionde Riḍván', 4: 'Tolfte Riḍván', 5: 'Bábs Deklaration', 6: 'Bahá’u’lláhs Bortgång', 7: 'Bábs Martyrskap', 8: 'Bábs Födelse', 9: 'Bahá’u’lláhs Födelse', 10: 'Förbundets dag', 11: '‘Abdu’l-Bahás Bortgång', }; const weekdayL$a = { 1: 'Härlighet', 2: 'Skönhet', 3: 'Fullkomlighet', 4: 'Nåd', 5: 'Rättvisa', 6: 'Majestät', 7: 'Oberoende', }; const BE$a = 'B.E.'; const badiCalendar$a = 'Badí‘kalendern'; var sv = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$a, holyDay: holyDay$a, weekdayL: weekdayL$a, BE: BE$a, badiCalendar: badiCalendar$a }); const month$4 = { 1: '巴哈', 2: '贾拉勒', 3: '贾迈勒', 4: '阿泽迈特', 5: '努尔', 6: '拉赫迈特', 7: '凯利马特', 8: '卡迈勒', 9: '艾斯玛', 10: '伊扎特', 11: '迈希耶特', 12: '伊勒姆', 13: '古德雷特', 14: '高勒', 15: '迈萨伊勒', 16: '谢拉夫', 17: '苏丹', 18: '穆勒克', 19: '阿拉', 20: '阿亚米哈', }; const monthL$b = { 1: '耀', 2: '辉', 3: '美', 4: '宏', 5: '光', 6: '仁', 7: '言', 8: '完', 9: '名', 10: '能', 11: '意', 12: '知', 13: '力', 14: '语', 15: '问', 16: '尊', 17: '权', 18: '统', 19: '崇', 20: '哈之日', }; const holyDay$b = { 1: '诺鲁孜节', 2: '里兹万节第一日', 3: '里兹万节第九日', 4: '里兹万节第十二日', 5: '巴孛宣示日', 6: '巴哈欧拉升天日', 7: '巴孛殉道日', 8: '巴孛诞辰', 9: '巴哈欧拉诞辰', 10: '圣约日', 11: '阿博都-巴哈升天日', }; const weekday$4 = { 1: '贾拉勒', 2: '贾迈勒', 3: '卡迈勒', 4: '菲达勒', 5: '伊达勒', 6: '伊斯提杰拉勒', 7: '伊斯提格拉勒', }; const weekdayAbbr3$4 = { 1: '贾拉勒', 2: '贾迈勒', 3: '卡迈勒', 4: '菲达勒', 5: '伊达勒', 6: '伊斯杰', 7: '伊斯格', }; const weekdayAbbr2$4 = { 1: '贾拉', 2: '贾迈', 3: '卡迈', 4: '菲达', 5: '伊达', 6: '伊杰', 7: '伊格', }; const weekdayL$b = { 1: '辉日', 2: '美日', 3: '完日', 4: '恩日', 5: '正日', 6: '威日', 7: '独日', }; const yearInVahid$4 = { 1: '艾利夫', 2: '巴', 3: '艾卜', 4: '达勒', 5: '巴卜', 6: '瓦乌', 7: '阿巴德', 8: '贾德', 9: '巴哈', 10: '胡卜', 11: '巴哈杰', 12: '贾瓦卜', 13: '阿哈德', 14: '瓦哈卜', 15: '维达德', 16: '巴迪', 17: '巴希', 18: '阿卜哈', 19: '瓦希德', }; const vahid$4 = '瓦希德'; const kulliShay$4 = '库里沙伊'; const BE$b = 'BE'; const badiCalendar$b = '巴迪历'; var zh = /*#__PURE__*/Object.freeze({ __proto__: null, month: month$4, monthL: monthL$b, holyDay: holyDay$b, weekday: weekday$4, weekdayAbbr3: weekdayAbbr3$4, weekdayAbbr2: weekdayAbbr2$4, weekdayL: weekdayL$b, yearInVahid: yearInVahid$4, vahid: vahid$4, kulliShay: kulliShay$4, BE: BE$b, badiCalendar: badiCalendar$b }); const monthL$c = { 1: 'Splendor', 16: 'Honor', }; var en_us = /*#__PURE__*/Object.freeze({ __proto__: null, monthL: monthL$c }); /* eslint-disable dot-notation, line-comment-position, camelcase, sort-imports */ const badiLocale = { en, ar, de, es, fa, fr, lv, nl, pt, ru, sv, zh, 'en-us': en_us, default: en }; const setDefaultLanguage = (language) => { if (badiLocale[language] === undefined) { // eslint-disable-next-line no-console console.log('Chosen language does not exist. Setting has not been changed.'); } else { badiLocale['default'] = badiLocale[language]; } }; let underlineFormat = 'css'; const setUnderlineFormat = (format) => { if (['css', 'u', 'diacritic', 'none'].includes(format)) { underlineFormat = format; } else { // eslint-disable-next-line no-console console.log('Invalid underline format. Choose one of ["css", "u", "diacritic", "none"]. ' + 'Setting has not been changed.'); } }; const formatTokens = [ ['DDL', 'DD+', 'MML', 'MM+', 'WWL', 'yyv', 'KiS'], ['dd', 'DD', 'mm', 'MM', 'ww', 'WW', 'yv', 'YV', 'vv', 'kk', 'yy', 'BE', 'BC', 'Va'], ['d', 'D', 'm', 'M', 'W', 'v', 'k', 'y'] ]; // eslint-disable-next-line complexity const formatBadiDate = (badiDate, formatString, language) => { if (!badiDate.isValid) { return 'Not a valid Badí‘ date'; } if (typeof language === 'string' && badiLocale[language] === undefined && language.includes('-')) { language = language.split('-')[0]; } if (language === undefined || badiLocale[language] === undefined) { language = 'default'; } formatString = formatString !== null && formatString !== void 0 ? formatString : formatItemFallback(language, 'defaultFormat'); let formattedDate = ''; const length = formatString.length; for (let i = 0; i < length; i++) { // Text wrapped in {} is output as-is. A '{' without a matching '}' // results in invalid input if (formatString[i] === '{' && i < length - 1) { for (let j = i + 1; j <= length; j++) { if (j === length) { return 'Invalid formatting string.'; } if (formatString[j] === '}') { i = j; break; } formattedDate += formatString[j]; } } else { const next1 = formatString[i]; const next2 = next1 + formatString[i + 1]; const next3 = next2 + formatString[i + 2]; if (formatTokens[0].includes(next3)) { formattedDate += getFormatItem(badiDate, next3, language); i += 2; } else if (formatTokens[1].includes(next2)) { formattedDate += getFormatItem(badiDate, next2, language); i += 1; } else if (formatTokens[2].includes(next1)) { formattedDate += getFormatItem(badiDate, next1, language); } else { formattedDate += next1; } } } return formattedDate; }; // eslint-disable-next-line complexity const getFormatItem = (badiDate, token, language) => { switch (token) { // Single character tokens case 'd': return digitRewrite(badiDate.day, language); case 'D': return postProcessLocaleItem(formatItemFallback(language, 'month', badiDate.day), 3); case 'm': return digitRewrite(badiDate.month, language); case 'M': return postProcessLocaleItem(formatItemFallback(language, 'month', badiDate.month), 3); case 'W': return formatItemFallback(language, 'weekdayAbbr3', (badiDate.gregorianDate.weekday + 1) % 7 + 1); case 'y': return digitRewrite(badiDate.year, language); case 'v': return digitRewrite((Math.floor((badiDate.year - 1) / 19) % 19) + 1, language); case 'k': return digitRewrite(Math.floor((badiDate.year - 1) / 361) + 1, language); // Two character tokens case 'dd': return digitRewrite((`0${String(badiDate.day)}`).slice(-2), language); case 'DD': return postProcessLocaleItem(formatItemFallback(language, 'month', badiDate.day)); case 'mm': return digitRewrite((`0${String(badiDate.month)}`).slice(-2), language); case 'MM': return postProcessLocaleItem(formatItemFallback(language, 'month', badiDate.month)); case 'ww': return formatItemFallback(language, 'weekdayAbbr2', (badiDate.gregorianDate.weekday + 1) % 7 + 1); case 'WW': return formatItemFallback(language, 'weekday', (badiDate.gregorianDate.weekday + 1) % 7 + 1); case 'yy': return digitRewrite((`00${String(badiDate.year)}`).slice(-3), language); case 'yv': return digitRewrite((badiDate.year - 1) % 19 + 1, language); case 'YV': return formatItemFallback(language, 'yearInVahid', (badiDate.year - 1) % 19 + 1); case 'vv': return digitRewrite((`0${String((Math.floor((badiDate.year - 1) / 19) + 2) % 19 - 1)}`).slice(-2), language); case 'kk': return digitRewrite((`0${String(Math.floor((badiDate.year - 1) / 361) + 1)}`).slice(-2), language); case 'Va': return formatItemFallback(language, 'vahid'); case 'BE': return formatItemFallback(language, 'BE'); case 'BC': return formatItemFallback(language, 'badiCalendar'); // Three character tokens case 'DDL': return formatItemFallback(language, 'monthL', badiDate.day); case 'DD+': { const day = postProcessLocaleItem(formatItemFallback(language, 'month', badiDate.day)); const dayL = formatItemFallback(language, 'monthL', badiDate.day); if (day === dayL) { return day; } if (badiLocale[language] === badiLocale.fa) { return `${day} (${dayL})`; } return `${day} (${dayL})`; } case 'MML': return formatItemFallback(language, 'monthL', badiDate.month); case 'MM+': { const month = postProcessLocaleItem(formatItemFallback(language, 'month', badiDate.month)); const monthL = formatItemFallback(language, 'monthL', badiDate.month); if (month === monthL) { return month; } if (badiLocale[language] === badiLocale.fa) { return `${month} (${monthL})`; } return `${month} (${monthL})`; } case 'WWL': return formatItemFallback(language, 'weekdayL', (badiDate.gregorianDate.weekday + 1) % 7 + 1); case 'yyv': return digitRewrite((`0${String((badiDate.year - 1) % 19 + 1)}`).slice(-2), language); case 'KiS': return postProcessLocaleItem(formatItemFallback(language, 'kulliShay')); // istanbul ignore next default: return ''; } }; const postProcessLocaleItem = (item, crop) => { if (crop && crop < item.length) { let char = 0; let counter = 0; while (counter < crop) { if (!'_’‘'.includes(item[char])) { counter++; } char++; } if ('_’‘'.includes(item[char])) { char++; } item = item.slice(0, char); if (item.split('_').length % 2 === 0) { item += '_'; } } const stringComponents = item.split('_'); for (let i = 1; i < stringComponents.length; i += 2) { stringComponents[i] = underlineString(stringComponents[i]); } return stringComponents.join(''); }; const underlineString = (str) => { switch (underlineFormat) { case 'css': return `${str}`; case 'diacritic': return str.split('').map(char => `${char}\u0332`).join(''); case 'u': return `${str}`; case 'none': return str; // istanbul ignore next default: throw new TypeError('Unexpected underlineFormat'); } }; const digitRewrite = (number, language) => { number = String(number); const unicodeOffset = formatItemFallback(language, 'unicodeCharForZero').charCodeAt(0) - '0'.charCodeAt(0); if (unicodeOffset === 0) { return number; } const codePoints = [...number].map(num => num.charCodeAt(0) + unicodeOffset); return String.fromCharCode(...codePoints); }; const formatItemFallback = (language, category, index) => { var _a; if (index === undefined) { while (badiLocale[language][category] === undefined) { language = languageFallback(language); } return badiLocale[language][category]; } while (((_a = badiLocale[language][category]) === null || _a === void 0 ? void 0 : _a[index]) === undefined) { language = languageFallback(language); } return badiLocale[language][category][index]; }; const languageFallback = (languageCode) => { if (languageCode.includes('-')) { return languageCode.split('-')[0]; // eslint-disable-next-line no-negated-condition } else if (languageCode !== 'default') { return 'default'; } return 'en'; }; const badiYears = [ 'l4da', 'k4ci', 'k5c7', 'l4d6', 'l4ce', 'k4c4', 'k5d4', 'l4cb', 'l4c1', 'k4cj', 'k5c8', 'l4d7', 'l4cf', 'k4c5', 'k4d5', 'k5ce', 'l4c2', 'k4d2', 'k4ca', 'k5da', 'l4ch', 'k4c6', 'k4d6', 'k5cf', 'l4c4', 'k4d4', 'k4cc', 'k5c1', 'l4cj', 'k4c8', 'k4d8', 'k5cg', 'l4c5', 'k4d5', 'k4ce', 'k5c3', 'l4d2', 'k4ca', 'k4d9', 'k5ci', 'l4c6', 'k4d6', 'k4cf', 'k4c4', 'k5d4', 'k4cb', 'k4bj', 'k4cj', 'k5c9', 'k4d8', 'k4cg', 'k4c6', 'k5d6', 'k4cd', 'k4c2', 'k4d2', 'k5ca', 'k4d9', 'k4ci', 'k4c7', 'k5d7', 'k4cf', 'k4c4', 'k4d4', 'k5cc', 'k4bj', 'k4cj', 'k4c9', 'k5d9', 'k4cg', 'k4c6', 'k4d5', 'k5cd', 'k4c2', 'k4d1', 'k4ca', 'k4da', 'j5cj', 'k4c7', 'k4d7', 'k4cf', 'j5c4', 'k4d3', 'k4cb', 'k4c1', 'k5d1', 'l4c9', 'l4d9', 'l4ch', 'k5c6', 'l4d5', 'l4cd', 'l4c2', 'k5d2', 'l4ca', 'l4da', 'l4cj', 'k5c8', 'l4d7', 'l4cf', 'l4c4', 'k5d4', 'l4cb', 'l4c1', 'l4d1', 'k5c9', 'l4d8', 'l4cg', 'l4c5', 'k4d5', 'k5ce', 'l4c2', 'l4d2', 'k4cb', 'k5db', 'l4ci', 'l4c7', 'k4d7', 'k5cf', 'l4c4', 'l4d4', 'k4cc', 'k5c2', 'l4d1', 'l4c9', 'k4d9', 'k5ch', 'l4c5', 'l4d5', 'k4ce', 'k5c3', 'l4d2', 'l4cb', 'k4da', 'k5ci', 'l4c6', 'l4d6', 'k4cf', 'k5c5', 'l4d4', 'l4cc', 'k4c1', 'k4d1', 'k5c9', 'l4d8', 'k4cg', 'k4c6', 'k5d6', 'l4ce', 'k4c3', 'k4d3', 'k5cb', 'l4da', 'k4ci', 'k4c7', 'k5d7', 'l4cf', 'k4c5', 'k4d5', 'k5cd', 'l4c1', 'k4cj', 'k4c9', 'k5d9', 'l4cg', 'k4c6', 'k4d6', 'k5ce', 'l4c3', 'k4d2', 'k4ca', 'k5bj', 'l4ci', 'k4c7', 'k4d7', 'k4cg', 'k5c5', 'k4d4', 'k4cc', 'k4c1', 'k5d1', 'k4c9', 'k4d9', 'k4ch', 'k5c7', 'l4d6', 'l4ce', 'l4c3', 'l5d3', 'l4ca', 'l4da', 'l4cj', 'l5c8', 'l4d7', 'l4cg', 'l4c5', 'l5d4', 'l4cb', 'l4c1', 'l4d1', 'l5ca', 'l4d9', 'l4ch', 'l4c6', 'l5d6', 'l4cd', 'l4c2', 'l4d2', 'l4cb', 'k5c1', 'l4cj', 'l4c8', 'l4d8', 'k5cg', 'l4c4', 'l4d4', 'l4cc', 'k5c2', 'l4d1', 'l4ca', 'l4da', 'k5ci', 'l4c6', 'l4d5', 'l4ce', 'k5c3', 'l4d2', 'l4cb', 'l4db', 'k5cj', 'l4c8', 'l4d7', 'l4cf', 'k5c5', 'l4d4', 'l4cc', 'l4c2', 'k5d2', 'l4c9', 'l4d9', 'l4ch', 'k4c6', 'k5d6', 'l4ce', 'l4c3', 'k4d3', 'k5cc', 'l4db', 'l4cj', 'k4c8', 'k5d8', 'l4cf', 'l4c4', 'k4d5', 'k5cd', 'l4c2', 'l4d2', 'k4ca', 'k5d9', 'l4cg', 'l4c6', 'k4d6', 'k5cf', 'l4c3', 'l4d3', 'k4cb', 'k5bj', 'l4ci', 'l4c7', 'k4d7', 'k5cg', 'l4c5', 'l4d5', 'k4cd', 'k4c2', 'k5d2', 'l4c9', 'k4d9', 'k4ch', 'k5c7', 'l4d6', 'k4cf', 'k4c4', 'k5d4', 'l4cb', 'l4bj', 'l4cj', 'l5c8', 'm4d7', 'l4cg', 'l4c5', 'l5d5', 'm4cc', 'l4c1', 'l4d1', 'l5ca', 'm4d9', 'l4ch', 'l4c7', 'l5d7', 'm4ce', 'l4c3', 'l4d3', 'l5cb', 'm4bi', 'l4ci', 'l4c8', 'l4d8', 'l5ch', 'l4c5', 'l4d5', 'l4cd', 'l5c2', 'l4d1', 'l4c9', 'l4da', 'l5ci', 'l4c7', 'l4d7', 'l4cf', 'l5c4', 'l4d2', 'l4cb', 'l4bj', 'l5d1', 'l4c8', 'l4d8', 'l4cg', 'l5c5', 'l4d4', 'l4cc', 'l4c2', 'l5d2', 'l4c9', 'l4da', 'l4ci', ]; class BadiDate { constructor(date) { this._holyDay = undefined; this._valid = true; this._invalidReason = undefined; try { if (this._isDateObject(date)) { this._gregorianDate = luxon.DateTime.fromObject({ year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate(), zone: 'UTC' }); } else if (luxon.DateTime.isDateTime(date)) { this._gregorianDate = luxon.DateTime.fromObject({ year: date.year, month: date.month, day: date.day, zone: 'UTC' }); } else if (this._isYearMonthDay(date) || this._isYearHolyDayNumber(date)) { this._setFromBadiDate(date); } else { throw new TypeError('Unrecognized input format'); } if (this._year === undefined) { // We haven't set the Badí' date yet this._setFromGregorianDate(); } this._setHolyDay(); } catch (err) { this._setInvalid(err); } Object.freeze(this); } format(formatString, language) { return formatBadiDate(this, formatString, language); } _isDateObject(arg) { return Object.prototype.toString.call(arg) === '[object Date]'; } _isYearMonthDay(arg) { return typeof arg.year === 'number' && typeof arg.month === 'number' && typeof arg.day === 'number'; } _isYearHolyDayNumber(arg) { return typeof arg.year === 'number' && arg.month === undefined && arg.day === undefined && typeof arg.holyDayNumber === 'number'; } _notInValidGregorianDateRange(datetime) { const lowerBound = luxon.DateTime.fromObject({ year: 1844, month: 3, day: 21, zone: 'UTC' }); const upperBound = luxon.DateTime.fromObject({ year: 2351, month: 3, day: 20, zone: 'UTC' }); return datetime < lowerBound || datetime > upperBound; } _setFromGregorianDate() { if (this._notInValidGregorianDateRange(this._gregorianDate)) { throw new RangeError('Input date outside of valid range (1844-03-21 - 2351-03-20)'); } const gregorianYear = this._gregorianDate.year; const oldImplementationCutoff = luxon.DateTime.fromObject({ year: 2015, month: 3, day: 21, zone: 'UTC' }); if (this._gregorianDate < oldImplementationCutoff) { const { month, day } = this._gregorianDate; if (month < 3 || (month === 3 && day < 21)) { this._nawRuz = luxon.DateTime.fromObject({ year: gregorianYear - 1, month: 3, day: 21, zone: 'UTC' }); this._year = gregorianYear - 1844; } else { this._nawRuz = luxon.DateTime.fromObject({ year: gregorianYear, month: 3, day: 21, zone: 'UTC' }); this._year = gregorianYear - 1843; } this._setOldAyyamiHaLength(); this._yearTwinBirthdays = [12, 5, 13, 9]; } else { this._year = gregorianYear - 1843; this._setBadiYearInfo(true); } this._setBadiMonthAndDay(); } /** * Set Badí' month and day from Gregorian date */ _setBadiMonthAndDay() { const dayOfBadiYear = this._dayOfYear(this._gregorianDate); if (dayOfBadiYear < 343) { this._month = Math.floor((dayOfBadiYear - 1) / 19 + 1); this._day = (dayOfBadiYear - 1) % 19 + 1; } else if (dayOfBadiYear < 343 + this._ayyamiHaLength) { this._month = 20; this._day = dayOfBadiYear - 342; } else { this._month = 19; this._day = dayOfBadiYear - (342 + this._ayyamiHaLength); } } _setFromBadiDate(date) { this._year = date.year; if (this._year < 1 || this._year > 507) { throw new RangeError('Input date outside of valid range (1 - 507 B.E.)'); } else if (this._year < 172) { this._nawRuz = luxon.DateTime.fromObject({ year: 1843 + this._year, month: 3, day: 21, zone: 'UTC' }); this._setOldAyyamiHaLength(); this._yearTwinBirthdays = [12, 5, 13, 9]; } else { this._setBadiYearInfo(); } if (this._isYearMonthDay(date)) { this._month = date.month; this._day = date.day; if (this._month === 20 && this._day > this._ayyamiHaLength) { // If only off by one day, we'll bubble up so that 5th Ayyám-i-Há in a year with only 4 days of // Ayyám-i-Há can be salvaged if (this._day - this._ayyamiHaLength === 1) { this._month = 19; this._day = 1; } else { throw new TypeError('Input numbers do not designate a valid date'); } } if (this._month < 1 || this._month > 20 || this._day < 1 || this.day > 19) { throw new TypeError('Input numbers do not designate a valid date'); } } else { if (date.holyDayNumber < 1 || date.holyDayNumber > 11) { throw new TypeError('Input numbers do not designate a valid Holy Day'); } this._holyDay = date.holyDayNumber; [this._month, this._day] = this._holyDayMapping()[this._holyDay]; } this._gregorianDate = this._nawRuz.plus(luxon.Duration.fromObject({ days: this._dayOfYear([this._year, this._month, this._day]) - 1 })); } _setOldAyyamiHaLength() { if (luxon.DateTime.fromObject({ year: this._nawRuz.year + 1 }).isInLeapYear) { this._ayyamiHaLength = 5; } else { this._ayyamiHaLength = 4; } } _setBadiYearInfo(fromGregorianDate = false) { let yearData = this._extractBadiYearInfo(); if (fromGregorianDate && this._gregorianDate < yearData.nawRuz) { this._year -= 1; yearData = this._extractBadiYearInfo(); } this._nawRuz = yearData.nawRuz; this._ayyamiHaLength = yearData.ayyamiHaLength; this._yearTwinBirthdays = yearData.twinBirthdays; } _extractBadiYearInfo() { let nawRuz, ayyamiHaLength, twinBirthdays; // Check whether data needs to be unpacked or exists in the verbose version // istanbul ignore else if (badiYears[0] === 'l4da') { const components = badiYears[this._year - 172].split(''); nawRuz = luxon.DateTime.fromObject({ year: this._year - 172 + 2015, month: 3, day: parseInt(components[0], 36), zone: 'UTC' }); ayyamiHaLength = parseInt(components[1], 36); const TB1 = [parseInt(components[2], 36), parseInt(components[3], 36)]; const TB2 = TB1[1] < 19 ? [TB1[0], TB1[1] + 1] : [TB1[0] + 1, 1]; twinBirthdays = [TB1[0], TB1[1], TB2[0], TB2[1]]; } else { ({ nawRuz, ayyamiHaLength, twinBirthdays } = badiYears[this._year]); nawRuz = luxon.DateTime.fromISO(nawRuz, { zone: 'UTC' }); } return { nawRuz, ayyamiHaLength, twinBirthdays }; } _dayOfYear(date) { // Naw-Rúz is day 1 if (Array.isArray(date)) { // We have a Badí' date if (date[1] < 19) { return 19 * (date[1] - 1) + date[2]; } else if (date[1] === 20) { return 342 + date[2]; } // date[1] === 19 return 342 + this._ayyamiHaLength + date[2]; } return date.diff(this._nawRuz).as('days') + 1; } _setInvalid(invalidReason) { this._gregorianDate = luxon.DateTime.invalid('Not a valid Badí‘ date'); this._year = NaN; this._month = NaN; this._day = NaN; this._ayyamiHaLength = NaN; this._nawRuz = luxon.DateTime.invalid('Not a valid Badí‘ date'); this._valid = false; this._invalidReason = invalidReason; } _setHolyDay() { const mapping = this._holyDayMapping(); this._holyDay = parseInt(Object.keys(mapping) .find(key => mapping[key][0] === this._month && mapping[key][1] === this._day), 10); } _holyDayMapping() { return { [1 /* NawRuz */]: [1, 1], [2 /* FirstRidvan */]: [2, 13], [3 /* NinthRidvan */]: [3, 2], [4 /* TwelfthRidvan */]: [3, 5], [5 /* DeclarationOfTheBab */]: [4, this._year < 172 ? 7 : 8], [6 /* AscensionOfBahaullah */]: [4, 13], [7 /* MartyrdomOfTheBab */]: [6, this._year < 172 ? 16 : 17], [8 /* BirthOfTheBab */]: [this._yearTwinBirthdays[0], this._yearTwinBirthdays[1]], [9 /* BirthOfBahaullah */]: [this._yearTwinBirthdays[2], this._yearTwinBirthdays[3]], [10 /* DayOfTheCovenant */]: [14, 4], [11 /* AscensionOfAbdulBaha */]: [14, 6], }; } _leapYearsBefore() { let leapYearsBefore = Math.floor(Math.min(this.year - 1, 171) / 4); if (this.year > 172) { // istanbul ignore else if (badiYears[0] === 'l4da') { leapYearsBefore += badiYears.slice(0, this.year - 172).filter(entry => entry[1] === '5').length; } else { leapYearsBefore += Object.entries(badiYears) .filter(([year, data]) => parseInt(year, 10) < this.year && data.ayyamiHaLength === 5).length; } } return leapYearsBefore; } holyDay(language = undefined) { if (!this._holyDay) { return ''; } if (language === undefined || badiLocale[language] === undefined) { language = 'default'; } return formatItemFallback(language, 'holyDay', this._holyDay); } valueOf() { return this._dayOfYear([this.year, this.month, this.day]) + this._leapYearsBefore() + (this.year - 1) * 365; } equals(other) { return this.isValid && other.isValid && this.valueOf() === other.valueOf(); } get isValid() { return this._valid; } get invalidReason() { return this._invalidReason; } get day() { return this._day; } get month() { return this._month; } get year() { return this._year; } // number of the Badí' weekday between 1 (Jalál ~> Saturday) and 7 (Istiqlál ~> Friday). get weekday() { return (this._gregorianDate.weekday + 1) % 7 + 1; } get yearInVahid() { return (this._year - 1) % 19 + 1; } get vahid() { return (Math.floor((this._year - 1) / 19) % 19) + 1; } get kullIShay() { return Math.floor((this._year - 1) / 361) + 1; } // Gregorian date on whose sunset the Badí' date ends. get gregorianDate() { return this._gregorianDate; } get ayyamiHaLength() { return this._ayyamiHaLength; } get holyDayNumber() { return this._holyDay ? this._holyDay : undefined; } get workSuspended() { return this._holyDay ? this.holyDayNumber < 10 : undefined; } get nextMonth() { let { year, month } = this; switch (month) { case 18: month = 20; break; case 19: month = 1; year += 1; break; case 20: month = 19; break; default: month += 1; } return new BadiDate({ year, month, day: 1 }); } get previousMonth() { let { year, month } = this; switch (month) { case 1: month = 19; year -= 1; break; case 19: month = 20; break; case 20: month = 18; break; default: month -= 1; } return new BadiDate({ year, month, day: 1 }); } get nextDay() { if (this._day === 19 || (this._month === 20 && this._day === this._ayyamiHaLength)) { return this.nextMonth; } return new BadiDate({ year: this._year, month: this._month, day: this._day + 1 }); } get previousDay() { if (this._day === 1) { const { previousMonth } = this; let day = 19; if (this._month === 19) { day = this._ayyamiHaLength; } return new BadiDate({ year: previousMonth.year, month: previousMonth.month, day, }); } return new BadiDate({ year: this._year, month: this._month, day: this._day - 1 }); } } const badiDateSettings = (settings) => { if (settings.defaultLanguage) { setDefaultLanguage(settings.defaultLanguage); } if (settings.underlineFormat) { setUnderlineFormat(settings.underlineFormat); } }; exports.BadiDate = BadiDate; exports.badiDateSettings = badiDateSettings; Object.defineProperty(exports, '__esModule', { value: true }); })));