/**
* @license BadiDate v3.0.2
* (c) 2018 Jan Greis
* licensed under MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("luxon")):"function"==typeof define&&define.amd?define(["exports","luxon"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).window=e.window||{},e.luxon)}(this,(function(e,t){"use strict";var a=Object.freeze({__proto__:null,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á"},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á"},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á"},weekday:{1:"Jalál",2:"Jamál",3:"Kamál",4:"Fiḍál",5:"‘Idál",6:"Istijlál",7:"Istiqlál"},weekdayAbbr3:{1:"Jal",2:"Jam",3:"Kam",4:"Fiḍ",5:"‘Idá",6:"Isj",7:"Isq"},weekdayAbbr2:{1:"Jl",2:"Jm",3:"Ka",4:"Fi",5:"‘Id",6:"Ij",7:"Iq"},weekdayL:{1:"Glory",2:"Beauty",3:"Perfection",4:"Grace",5:"Justice",6:"Majesty",7:"Independence"},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"},vahid:"Váḥid",kulliShay:"Kull-i-_Sh_ay’",BE:"B.E.",badiCalendar:"Badí‘ Calendar",unicodeCharForZero:"0",defaultFormat:"d MM+ y BE"});const r={en:a,default:a};let i="css";const n=[["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"]],l=(e,t,a)=>{switch(t){case"d":return c(e.day,a);case"D":return d(h(a,"month",e.day),3);case"m":return c(e.month,a);case"M":return d(h(a,"month",e.month),3);case"W":return h(a,"weekdayAbbr3",(e.gregorianDate.weekday+1)%7+1);case"y":return c(e.year,a);case"v":return c(Math.floor((e.year-1)/19)%19+1,a);case"k":return c(Math.floor((e.year-1)/361)+1,a);case"dd":return c(("0"+String(e.day)).slice(-2),a);case"DD":return d(h(a,"month",e.day));case"mm":return c(("0"+String(e.month)).slice(-2),a);case"MM":return d(h(a,"month",e.month));case"ww":return h(a,"weekdayAbbr2",(e.gregorianDate.weekday+1)%7+1);case"WW":return h(a,"weekday",(e.gregorianDate.weekday+1)%7+1);case"yy":return c(("00"+String(e.year)).slice(-3),a);case"yv":return c((e.year-1)%19+1,a);case"YV":return h(a,"yearInVahid",(e.year-1)%19+1);case"vv":return c(("0"+String((Math.floor((e.year-1)/19)+2)%19-1)).slice(-2),a);case"kk":return c(("0"+String(Math.floor((e.year-1)/361)+1)).slice(-2),a);case"Va":return h(a,"vahid");case"BE":return h(a,"BE");case"BC":return h(a,"badiCalendar");case"DDL":return h(a,"monthL",e.day);case"DD+":{const t=d(h(a,"month",e.day)),i=h(a,"monthL",e.day);return t===i?t:r[a]===r.fa?`${t} (${i})`:`${t} (${i})`}case"MML":return h(a,"monthL",e.month);case"MM+":{const t=d(h(a,"month",e.month)),i=h(a,"monthL",e.month);return t===i?t:r[a]===r.fa?`${t} (${i})`:`${t} (${i})`}case"WWL":return h(a,"weekdayL",(e.gregorianDate.weekday+1)%7+1);case"yyv":return c(("0"+String((e.year-1)%19+1)).slice(-2),a);case"KiS":return d(h(a,"kulliShay"));default:return""}},d=(e,t)=>{if(t&&t{switch(i){case"css":return`${e}`;case"diacritic":return e.split("").map(e=>e+"̲").join("");case"u":return`${e}`;case"none":return e;default:throw new TypeError("Unexpected underlineFormat")}},c=(e,t)=>{e=String(e);const a=h(t,"unicodeCharForZero").charCodeAt(0)-"0".charCodeAt(0);if(0===a)return e;const r=[...e].map(e=>e.charCodeAt(0)+a);return String.fromCharCode(...r)},h=(e,t,a)=>{var i;if(void 0===a){for(;void 0===r[e][t];)e=o(e);return r[e][t]}for(;void 0===(null===(i=r[e][t])||void 0===i?void 0:i[a]);)e=o(e);return r[e][t][a]},o=e=>e.includes("-")?e.split("-")[0]:"default"!==e?"default":"en",y=["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 k{constructor(e){this._holyDay=void 0,this._valid=!0,this._invalidReason=void 0;try{if(this._isDateObject(e))this._gregorianDate=t.DateTime.fromObject({year:e.getFullYear(),month:e.getMonth()+1,day:e.getDate(),zone:"UTC"});else if(t.DateTime.isDateTime(e))this._gregorianDate=t.DateTime.fromObject({year:e.year,month:e.month,day:e.day,zone:"UTC"});else{if(!this._isYearMonthDay(e)&&!this._isYearHolyDayNumber(e))throw new TypeError("Unrecognized input format");this._setFromBadiDate(e)}void 0===this._year&&this._setFromGregorianDate(),this._setHolyDay()}catch(e){this._setInvalid(e)}Object.freeze(this)}format(e,t){return((e,t,a)=>{if(!e.isValid)return"Not a valid Badí‘ date";"string"==typeof a&&void 0===r[a]&&a.includes("-")&&(a=a.split("-")[0]),void 0!==a&&void 0!==r[a]||(a="default");let i="";const d=(t=null!=t?t:h(a,"defaultFormat")).length;for(let r=0;rr}_setFromGregorianDate(){if(this._notInValidGregorianDateRange(this._gregorianDate))throw new RangeError("Input date outside of valid range (1844-03-21 - 2351-03-20)");const e=this._gregorianDate.year,a=t.DateTime.fromObject({year:2015,month:3,day:21,zone:"UTC"});if(this._gregorianDate507)throw new RangeError("Input date outside of valid range (1 - 507 B.E.)");if(this._year<172?(this._nawRuz=t.DateTime.fromObject({year:1843+this._year,month:3,day:21,zone:"UTC"}),this._setOldAyyamiHaLength(),this._yearTwinBirthdays=[12,5,13,9]):this._setBadiYearInfo(),this._isYearMonthDay(e)){if(this._month=e.month,this._day=e.day,20===this._month&&this._day>this._ayyamiHaLength){if(this._day-this._ayyamiHaLength!=1)throw new TypeError("Input numbers do not designate a valid date");this._month=19,this._day=1}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(e.holyDayNumber<1||e.holyDayNumber>11)throw new TypeError("Input numbers do not designate a valid Holy Day");this._holyDay=e.holyDayNumber,[this._month,this._day]=this._holyDayMapping()[this._holyDay]}this._gregorianDate=this._nawRuz.plus(t.Duration.fromObject({days:this._dayOfYear([this._year,this._month,this._day])-1}))}_setOldAyyamiHaLength(){t.DateTime.fromObject({year:this._nawRuz.year+1}).isInLeapYear?this._ayyamiHaLength=5:this._ayyamiHaLength=4}_setBadiYearInfo(e=!1){let t=this._extractBadiYearInfo();e&&this._gregorianDatee[t][0]===this._month&&e[t][1]===this._day),10)}_holyDayMapping(){return{1:[1,1],2:[2,13],3:[3,2],4:[3,5],5:[4,this._year<172?7:8],6:[4,13],7:[6,this._year<172?16:17],8:[this._yearTwinBirthdays[0],this._yearTwinBirthdays[1]],9:[this._yearTwinBirthdays[2],this._yearTwinBirthdays[3]],10:[14,4],11:[14,6]}}_leapYearsBefore(){let e=Math.floor(Math.min(this.year-1,171)/4);return this.year>172&&("l4da"===y[0]?e+=y.slice(0,this.year-172).filter(e=>"5"===e[1]).length:e+=Object.entries(y).filter(([e,t])=>parseInt(e,10){var t,a;e.defaultLanguage&&(t=e.defaultLanguage,void 0===r[t]?console.log("Chosen language does not exist. Setting has not been changed."):r.default=r[t]),e.underlineFormat&&(a=e.underlineFormat,["css","u","diacritic","none"].includes(a)?i=a:console.log('Invalid underline format. Choose one of ["css", "u", "diacritic", "none"]. Setting has not been changed.'))},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=badiDate.min.js.map