UNPKG

adhan-extended

Version:

High precision Islamic prayer time library (extended)

3 lines (2 loc) 16.2 kB
function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function e(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function a(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var s={Shafi:"shafi",Hanafi:"hanafi"};var o={MiddleOfTheNight:"middleofthenight",SeventhOfTheNight:"seventhofthenight",TwilightAngle:"twilightangle",recommended:function(t){return t.latitude>48?o.SeventhOfTheNight:o.MiddleOfTheNight}},h=a((function t(e,r){n(this,t),this.latitude=e,this.longitude=r})),u={Nearest:"nearest",Up:"up",None:"none"};function l(t,e){var n=new Date(t.getTime());if(n.setDate(t.getDate()+e),0!==e)for(;n.toDateString()===t.toDateString();)n=new Date(n.valueOf()+e/Math.abs(e)*36e5);return n}function d(t,e){return c(t,60*e)}function c(t,e){return new Date(t.getTime()+1e3*e)}function g(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u.Nearest,n=t.getUTCSeconds(),r=n>=30?60-n:-1*n;return e===u.Up?r=60-n:e===u.None&&(r=0),c(t,r)}function f(t){for(var e=0,n=[31,j.isLeapYear(t.getFullYear())?29:28,31,30,31,30,31,31,30,31,30,31],r=0;r<t.getMonth();r++)e+=n[r];return e+=t.getDate()}function m(t){return t instanceof Date&&!isNaN(t.valueOf())}function v(t){return t*Math.PI/180}function M(t){return 180*t/Math.PI}function p(t,e){return t-e*Math.floor(t/e)}function b(t){return p(t,360)}var w,A={General:"general",Ahmer:"ahmer",Abyad:"abyad"},j={meanSolarLongitude:function(t){var e=t;return b(280.4664567+36000.76983*e+3032e-7*Math.pow(e,2))},meanLunarLongitude:function(t){return b(218.3165+481267.8813*t)},ascendingLunarNodeLongitude:function(t){var e=t;return b(125.04452-1934.136261*e+.0020708*Math.pow(e,2)+Math.pow(e,3)/45e4)},meanSolarAnomaly:function(t){var e=t;return b(357.52911+35999.05029*e-1537e-7*Math.pow(e,2))},solarEquationOfTheCenter:function(t,e){var n=t,r=v(e);return(1.914602-.004817*n-14e-6*Math.pow(n,2))*Math.sin(r)+(.019993-101e-6*n)*Math.sin(2*r)+289e-6*Math.sin(3*r)},apparentSolarLongitude:function(t,e){var n=t,r=125.04-1934.136*n;return b(e+j.solarEquationOfTheCenter(n,j.meanSolarAnomaly(n))-.00569-.00478*Math.sin(v(r)))},meanObliquityOfTheEcliptic:function(t){var e=t;return 23.439291-.013004167*e-1.639e-7*Math.pow(e,2)+5.036e-7*Math.pow(e,3)},apparentObliquityOfTheEcliptic:function(t,e){var n=125.04-1934.136*t;return e+.00256*Math.cos(v(n))},meanSiderealTime:function(t){var e=t;return b(280.46061837+360.98564736629*(36525*e+2451545-2451545)+387933e-9*Math.pow(e,2)-Math.pow(e,3)/3871e4)},nutationInLongitude:function(t,e,n,r){var a=e,i=n,s=r;return-17.2/3600*Math.sin(v(s))-1.32/3600*Math.sin(2*v(a))-.23/3600*Math.sin(2*v(i))+.21/3600*Math.sin(2*v(s))},nutationInObliquity:function(t,e,n,r){var a=e,i=n,s=r;return 9.2/3600*Math.cos(v(s))+.57/3600*Math.cos(2*v(a))+.1/3600*Math.cos(2*v(i))-.09/3600*Math.cos(2*v(s))},altitudeOfCelestialBody:function(t,e,n){var r=t,a=e,i=n,s=Math.sin(v(r))*Math.sin(v(a)),o=Math.cos(v(r))*Math.cos(v(a))*Math.cos(v(i));return M(Math.asin(s+o))},approximateTransit:function(t,e,n){return p((n+-1*t-e)/360,1)},correctedTransit:function(t,e,n,r,a,i){var s,o=t,h=r,u=a,l=i,d=-1*e,c=b(n+360.985647*o),g=b(j.interpolateAngles(h,u,l,o));return 24*(o+((s=c-d-g)>=-180&&s<=180?s:s-360*Math.round(s/360))/-360)},correctedHourAngle:function(t,e,n,r,a,i,s,o,h,u,l){var d=t,c=e,g=a,f=i,m=s,p=o,w=h,A=u,T=l,S=-1*n.longitude,y=Math.sin(v(c))-Math.sin(v(n.latitude))*Math.sin(v(w)),D=Math.cos(v(n.latitude))*Math.cos(v(w)),O=M(Math.acos(y/D)),N=r?d+O/360:d-O/360,L=b(g+360.985647*N),F=b(j.interpolateAngles(f,m,p,N)),P=j.interpolate(w,A,T,N),Y=L-S-F;return 24*(N+(j.altitudeOfCelestialBody(n.latitude,P,Y)-c)/(360*Math.cos(v(P))*Math.cos(v(n.latitude))*Math.sin(v(Y))))},interpolate:function(t,e,n,r){var a=t-e,i=n-t;return t+r/2*(a+i+r*(i-a))},interpolateAngles:function(t,e,n,r){var a=b(t-e),i=b(n-t);return t+r/2*(a+i+r*(i-a))},julianDay:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=Math.trunc,i=a(e>2?t:t-1),s=a(e>2?e:e+12),o=n+r/24,h=a(i/100),u=a(2-h+a(h/4)),l=a(365.25*(i+4716)),d=a(30.6001*(s+1));return l+d+o+u-1524.5},julianCentury:function(t){return(t-2451545)/36525},isLeapYear:function(t){return t%4==0&&(t%100!=0||t%400==0)},seasonAdjustedMorningTwilight:function(t,e,n,r){var a,i=75+28.65/55*Math.abs(t),s=75+19.44/55*Math.abs(t),o=75+32.74/55*Math.abs(t),h=75+48.1/55*Math.abs(t),u=(a=j.daysSinceSolstice(e,n,t))<91?i+(s-i)/91*a:a<137?s+(o-s)/46*(a-91):a<183?o+(h-o)/46*(a-137):a<229?h+(o-h)/46*(a-183):a<275?o+(s-o)/46*(a-229):s+(i-s)/91*(a-275);return c(r,Math.round(-60*u))},seasonAdjustedEveningTwilight:function(t,e,n,r,a){var i,s,o,h;a===A.Ahmer?(i=62+17.4/55*Math.abs(t),s=62-7.16/55*Math.abs(t),o=62+5.12/55*Math.abs(t),h=62+19.44/55*Math.abs(t)):a===A.Abyad?(i=75+25.6/55*Math.abs(t),s=75+7.16/55*Math.abs(t),o=75+36.84/55*Math.abs(t),h=75+1.488*Math.abs(t)):(i=75+25.6/55*Math.abs(t),s=75+2.05/55*Math.abs(t),o=75-9.21/55*Math.abs(t),h=75+6.14/55*Math.abs(t));var u,l=(u=j.daysSinceSolstice(e,n,t))<91?i+(s-i)/91*u:u<137?s+(o-s)/46*(u-91):u<183?o+(h-o)/46*(u-137):u<229?h+(o-h)/46*(u-183):u<275?o+(s-o)/46*(u-229):s+(i-s)/91*(u-275);return c(r,Math.round(60*l))},daysSinceSolstice:function(t,e,n){var r=0,a=j.isLeapYear(e)?173:172,i=j.isLeapYear(e)?366:365;return n>=0?(r=t+10,r>=i&&(r-=i)):(r=t-a,r<0&&(r+=i)),r}},T=a((function t(e){n(this,t);var r=j.julianCentury(e),a=j.meanSolarLongitude(r),i=j.meanLunarLongitude(r),s=j.ascendingLunarNodeLongitude(r),o=v(j.apparentSolarLongitude(r,a)),h=j.meanSiderealTime(r),u=j.nutationInLongitude(r,a,i,s),l=j.nutationInObliquity(r,a,i,s),d=j.meanObliquityOfTheEcliptic(r),c=v(j.apparentObliquityOfTheEcliptic(r,d));this.declination=M(Math.asin(Math.sin(c)*Math.sin(o))),this.rightAscension=b(M(Math.atan2(Math.cos(c)*Math.sin(o),Math.cos(o)))),this.apparentSiderealTime=h+3600*u*Math.cos(v(d+l))/3600})),S=function(){function t(e,r){n(this,t);var a=j.julianDay(e.getFullYear(),e.getMonth()+1,e.getDate(),0);this.observer=r,this.solar=new T(a),this.prevSolar=new T(a-1),this.nextSolar=new T(a+1);var i=j.approximateTransit(r.longitude,this.solar.apparentSiderealTime,this.solar.rightAscension),s=-50/60;this.approxTransit=i,this.transit=j.correctedTransit(i,r.longitude,this.solar.apparentSiderealTime,this.solar.rightAscension,this.prevSolar.rightAscension,this.nextSolar.rightAscension),this.sunrise=j.correctedHourAngle(i,s,r,!1,this.solar.apparentSiderealTime,this.solar.rightAscension,this.prevSolar.rightAscension,this.nextSolar.rightAscension,this.solar.declination,this.prevSolar.declination,this.nextSolar.declination),this.sunset=j.correctedHourAngle(i,s,r,!0,this.solar.apparentSiderealTime,this.solar.rightAscension,this.prevSolar.rightAscension,this.nextSolar.rightAscension,this.solar.declination,this.prevSolar.declination,this.nextSolar.declination)}return a(t,[{key:"hourAngle",value:function(t,e){return j.correctedHourAngle(this.approxTransit,t,this.observer,e,this.solar.apparentSiderealTime,this.solar.rightAscension,this.prevSolar.rightAscension,this.nextSolar.rightAscension,this.solar.declination,this.prevSolar.declination,this.nextSolar.declination)}},{key:"afternoon",value:function(t){var e=Math.abs(this.observer.latitude-this.solar.declination),n=t+Math.tan(v(e)),r=M(Math.atan(1/n));return this.hourAngle(r,!0)}}]),t}(),y={AqrabBalad:"AqrabBalad",AqrabYaum:"AqrabYaum",Unresolved:"Unresolved"},D=function(t){return!isNaN(t.sunrise)&&!isNaN(t.sunset)},O=function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;if(r>Math.ceil(182.5))return null;var i=new Date(n.getTime());i.setDate(i.getDate()+a*r);var s=l(i,1),o=new S(i,e),h=new S(s,e);return D(o)&&D(h)?{date:n,tomorrow:s,coordinates:e,solarTime:o,tomorrowSolarTime:h}:t(e,n,r+(a>0?0:1),-a)},N=function t(n,r,a){var i=new S(r,e(e({},n),{},{latitude:a})),s=l(r,1),o=new S(s,e(e({},n),{},{latitude:a}));return D(i)&&D(o)?{date:r,tomorrow:s,coordinates:new h(a,n.longitude),solarTime:i,tomorrowSolarTime:o}:Math.abs(a)>=65?t(n,r,a-.5*Math.sign(a)):null},L=function(t,e,n){var r={date:e,tomorrow:l(e,1),coordinates:n,solarTime:new S(e,n),tomorrowSolarTime:new S(l(e,1),n)};switch(t){case y.AqrabYaum:return O(n,e)||r;case y.AqrabBalad:var a=n.latitude;return N(n,e,a-.5*Math.sign(a))||r;default:return r}},F=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,h=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;n(this,t),i(this,"madhab",s.Shafi),i(this,"highLatitudeRule",o.MiddleOfTheNight),i(this,"adjustments",{fajr:0,sunrise:0,dhuhr:0,asr:0,maghrib:0,sunset:0,isha:0}),i(this,"methodAdjustments",{fajr:0,sunrise:0,dhuhr:0,asr:0,maghrib:0,sunset:0,isha:0}),i(this,"polarCircleResolution",y.Unresolved),i(this,"rounding",u.Nearest),i(this,"shafaq",A.General),this.method=e,this.fajrAngle=r,this.ishaAngle=a,this.ishaInterval=h,this.maghribAngle=l,null===this.method&&(this.method="Other")}return a(t,[{key:"nightPortions",value:function(){switch(this.highLatitudeRule){case o.MiddleOfTheNight:return{fajr:.5,isha:.5};case o.SeventhOfTheNight:return{fajr:1/7,isha:1/7};case o.TwilightAngle:return{fajr:this.fajrAngle/60,isha:this.ishaAngle/60};default:throw"Invalid high latitude rule found when attempting to compute night portions: ".concat(this.highLatitudeRule)}}}]),t}(),P={MuslimWorldLeague:function(){var t=new F("MuslimWorldLeague",18,17);return t.methodAdjustments.dhuhr=1,t},Egyptian:function(){var t=new F("Egyptian",19.5,17.5);return t.methodAdjustments.dhuhr=1,t},Karachi:function(){var t=new F("Karachi",18,18);return t.methodAdjustments.dhuhr=1,t},UmmAlQura:function(){return new F("UmmAlQura",18.5,0,90)},Dubai:function(){var t=new F("Dubai",18.2,18.2);return t.methodAdjustments=e(e({},t.methodAdjustments),{},{sunrise:-3,dhuhr:3,asr:3,sunset:3,maghrib:3}),t},MoonsightingCommittee:function(){var t=new F("MoonsightingCommittee",18,18);return t.methodAdjustments=e(e({},t.methodAdjustments),{},{dhuhr:5,sunset:3,maghrib:3}),t},NorthAmerica:function(){var t=new F("NorthAmerica",15,15);return t.methodAdjustments.dhuhr=1,t},Kuwait:function(){return new F("Kuwait",18,17.5)},Qatar:function(){return new F("Qatar",18,0,90)},Singapore:function(){var t=new F("Singapore",20,18);return t.methodAdjustments.dhuhr=1,t.rounding=u.Up,t},Tehran:function(){return new F("Tehran",17.7,14,0,4.5)},Turkey:function(){var t=new F("Turkey",18,17);return t.methodAdjustments=e(e({},t.methodAdjustments),{},{sunrise:-7,dhuhr:5,asr:4,sunset:7,maghrib:7}),t},Other:function(){return new F("Other",0,0)}},Y={Fajr:"fajr",Sunrise:"sunrise",Dhuhr:"dhuhr",Asr:"asr",Maghrib:"maghrib",Isha:"isha",None:"none"},C=function(){function t(e){return n(this,t),this.hours=Math.floor(e),this.minutes=Math.floor(60*(e-this.hours)),this.seconds=Math.floor(60*(e-(this.hours+this.minutes/60))*60),this}return a(t,[{key:"utcDate",value:function(t,e,n){return new Date(Date.UTC(t,e,n,this.hours,this.minutes,this.seconds))}}]),t}(),q=function(){function t(e,r,a){n(this,t),this.coordinates=e,this.date=r,this.calculationParameters=a;var i,o,h,u,v,M,p,b=new S(r,e);h=new C(b.transit).utcDate(r.getFullYear(),r.getMonth(),r.getDate()),o=new C(b.sunrise).utcDate(r.getFullYear(),r.getMonth(),r.getDate()),v=new C(b.sunset).utcDate(r.getFullYear(),r.getMonth(),r.getDate());var w=l(r,1),A=new S(w,e),T=a.polarCircleResolution;if((!m(o)||!m(v)||isNaN(A.sunrise))&&T!==y.Unresolved){var D,O,N,F=L(T,r,e);b=F.solarTime,A=F.tomorrowSolarTime;var P=[r.getFullYear(),r.getMonth(),r.getDate()];h=(D=new C(b.transit)).utcDate.apply(D,P),o=(O=new C(b.sunrise)).utcDate.apply(O,P),v=(N=new C(b.sunset)).utcDate.apply(N,P)}u=new C(b.afternoon(function(t){switch(t){case s.Shafi:return 1;case s.Hanafi:return 2;default:throw"Invalid Madhab"}}(a.madhab))).utcDate(r.getFullYear(),r.getMonth(),r.getDate());var Y=new C(A.sunrise).utcDate(w.getFullYear(),w.getMonth(),w.getDate()),q=(Number(Y)-Number(v))/1e3;i=new C(b.hourAngle(-1*a.fajrAngle,!1)).utcDate(r.getFullYear(),r.getMonth(),r.getDate()),"MoonsightingCommittee"===a.method&&e.latitude>=55&&(i=c(o,-(q/7)));var I=function(){if("MoonsightingCommittee"===a.method)return j.seasonAdjustedMorningTwilight(e.latitude,f(r),r.getFullYear(),o);var t=a.nightPortions().fajr;return c(o,-(t*q))}();if((isNaN(i.getTime())||I>i)&&(i=I),a.ishaInterval>0)p=d(v,a.ishaInterval);else{p=new C(b.hourAngle(-1*a.ishaAngle,!0)).utcDate(r.getFullYear(),r.getMonth(),r.getDate()),"MoonsightingCommittee"===a.method&&e.latitude>=55&&(p=c(v,q/7));var x=function(){if("MoonsightingCommittee"===a.method)return j.seasonAdjustedEveningTwilight(e.latitude,f(r),r.getFullYear(),v,a.shafaq);var t=a.nightPortions().isha;return c(v,t*q)}();(isNaN(p.getTime())||x<p)&&(p=x)}if(M=v,a.maghribAngle){var E=new C(b.hourAngle(-1*a.maghribAngle,!0)).utcDate(r.getFullYear(),r.getMonth(),r.getDate());v<E&&p>E&&(M=E)}var k=(a.adjustments.fajr||0)+(a.methodAdjustments.fajr||0),U=(a.adjustments.sunrise||0)+(a.methodAdjustments.sunrise||0),H=(a.adjustments.dhuhr||0)+(a.methodAdjustments.dhuhr||0),B=(a.adjustments.asr||0)+(a.methodAdjustments.asr||0),Q=(a.adjustments.maghrib||0)+(a.methodAdjustments.maghrib||0),R=(a.adjustments.sunset||0)+(a.methodAdjustments.sunset||0),K=(a.adjustments.isha||0)+(a.methodAdjustments.isha||0);this.fajr=g(d(i,k),a.rounding),this.sunrise=g(d(o,U),a.rounding),this.dhuhr=g(d(h,H),a.rounding),this.asr=g(d(u,B),a.rounding),this.sunset=g(d(v,R),a.rounding),this.maghrib=g(d(M,Q),a.rounding),this.isha=g(d(p,K),a.rounding)}return a(t,[{key:"timeForPrayer",value:function(t){return t===Y.Fajr?this.fajr:t===Y.Sunrise?this.sunrise:t===Y.Dhuhr?this.dhuhr:t===Y.Asr?this.asr:t===Y.Maghrib?this.maghrib:t===Y.Isha?this.isha:null}},{key:"currentPrayer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date;return t>=this.isha?Y.Isha:t>=this.maghrib?Y.Maghrib:t>=this.asr?Y.Asr:t>=this.dhuhr?Y.Dhuhr:t>=this.sunrise?Y.Sunrise:t>=this.fajr?Y.Fajr:Y.None}},{key:"nextPrayer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date;return t>=this.isha?Y.None:t>=this.maghrib?Y.Isha:t>=this.asr?Y.Maghrib:t>=this.dhuhr?Y.Asr:t>=this.sunrise?Y.Dhuhr:t>=this.fajr?Y.Sunrise:Y.Fajr}}]),t}();function I(t){var e=new h(21.4225241,39.8261818),n=Math.sin(v(e.longitude)-v(t.longitude)),r=Math.cos(v(t.latitude))*Math.tan(v(e.latitude)),a=Math.sin(v(t.latitude))*Math.cos(v(e.longitude)-v(t.longitude));return b(M(Math.atan2(n,r-a)))}!function(t){t.SunsetToSunrise="SunsetToSunrise",t.SunsetToFajr="SunsetToFajr"}(w||(w={}));var x=a((function t(e,r){n(this,t);var a,i=l(e.date,1),s=new q(e.coordinates,i,e.calculationParameters);switch(r){case w.SunsetToFajr:a=s.fajr.getTime();break;case w.SunsetToSunrise:default:a=s.sunrise.getTime()}this.nightDuration=a-e.sunset.getTime();var o=this.nightDuration/1e3;this.firstThirdOfTheNight=g(c(e.sunset,o*(1/3))),this.middleOfTheNight=g(c(e.sunset,o/2)),this.lastThirdOfTheNight=g(c(e.sunset,o*(2/3)))}));export{P as CalculationMethod,F as CalculationParameters,h as Coordinates,o as HighLatitudeRule,s as Madhab,w as MidnightMethod,y as PolarCircleResolution,Y as Prayer,q as PrayerTimes,I as Qibla,u as Rounding,A as Shafaq,x as SunnahTimes}; //# sourceMappingURL=adhan.esm.min.js.map