UNPKG

jalaliday

Version:

Persian (Jalali, Khorshidi) Plugin for Day.js

2 lines (1 loc) 6.32 kB
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("dayjs/locale/fa")):"function"==typeof define&&define.amd?define(["dayjs/locale/fa"],n):(t=t||self).jalaliday=n(t.fa$1)}(this,function(t){"use strict";function n(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var r=[],i=!0,e=!1,a=void 0;try{for(var s,h=t[Symbol.iterator]();!(i=(s=h.next()).done)&&(r.push(s.value),!n||r.length!==n);i=!0);}catch(t){e=!0,a=t}finally{try{i||null==h.return||h.return()}finally{if(e)throw a}}return r}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t=t&&t.hasOwnProperty("default")?t.default:t;var r=Math.floor;function i(t,n){return t-n*r(t/n)}function e(t){return t%4==0&&!(t%100==0&&t%400!=0)}var a=1721425.5;function s(t,n,i){return a-1+365*(t-1)+r((t-1)/4)+-r((t-1)/100)+r((t-1)/400)+r((367*n-362)/12+(n<=2?0:e(t)?-1:-2)+i)}var h=1948320.5;function u(t,n,e){var a,s;return s=474+i(a=t-(t>=0?474:473),2820),e+(n<=7?31*(n-1):30*(n-1)+6)+r((682*s-110)/2816)+365*(s-1)+1029983*r(a/2820)+(h-1)}var o=function(t,n,e){return a=s(t,n,e),d=(a=r(a)+.5)-u(475,1,1),f=r(d/1029983),1029982==(c=i(d,1029983))?l=2820:($=r(c/366),j=i(c,366),l=r((2134*$+2816*j+2815)/1028522)+$+1),(h=l+2820*f+474)<=0&&h--,[h,o=(y=a-u(h,1,1)+1)<=186?Math.ceil(y/31):Math.ceil((y-6)/30),a-u(h,o,1)+1];var a,h,o,d,f,c,l,$,j,y},d=function(t,n,h){return function(t){var n,h,u,o,d,f,c,l,$,j,y,M;n=r(t-.5)+.5,u=r((h=n-a)/146097),o=i(h,146097),d=r(o/36524),f=i(o,36524),c=r(f/1461),l=i(f,1461),j=400*u+100*d+4*c+($=r(l/365)),4!=d&&4!=$&&j++,y=n-s(j,1,1),M=n<s(j,3,1)?0:e(j)?1:2;var v=r((12*(y+M)+373)/367);return[j,v,n-s(j,v,1)+1]}(u(t,n,h))},f=/^(\d{4})[-/]?(\d{1,2})[-/]?(\d{0,2})(.*)?$/,c=/\[.*?\]|jY{2,4}|jM{1,4}|jD{1,2}|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,l="day",$="month",j="year",y={jmonths:"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند".split("_")};return function(r,i,e){var a=i.prototype,s=a.$utils(),h=function(t){return"jalali"===t.$C},u=s.prettyUnit||s.p,M=s.isUndefined||s.u,v=s.padStart||s.s,b=s.monthDiff||s.m,p=s.absFloor||s.a,D=function(t){return function(){var n=t.bind(this).apply(void 0,arguments);return n.$C=this.$C,n.isJalali()&&n.InitJalali(),n}};a.startOf=D(a.startOf),a.endOf=D(a.endOf),a.add=D(a.add),a.subtract=D(a.subtract),a.set=D(a.set);var m=a.parse,_=a.init,g=a.startOf,O=a.$set,I=a.add,w=a.format,Y=a.diff,C=a.year,S=a.month,J=a.date,x=a.daysInMonth,A=a.toArray;e.$C="gregory",e.$fdow=6,e.calendar=function(t){return e.$C=t,e},a.calendar=function(t){var n=this.clone();return n.$C=t,n.isJalali()&&n.InitJalali(),n},a.isJalali=function(){return h(this)},e.en.jmonths="Farvardin_Ordibehesht_Khordaad_Tir_Mordaad_Shahrivar_Mehr_Aabaan_Aazar_Dey_Bahman_Esfand".split("_"),e.locale("fa",Object.assign({},t,{},y),!0);var k=function(t,n){return e(t,{locale:n.$L,utc:n.$u,calendar:n.$C})};a.init=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_.bind(this)(t),this.isJalali()&&this.InitJalali()},a.parse=function(t){var r;if(this.$C=t.calendar||this.$C||e.$C,t.jalali&&"string"==typeof t.date&&/.*[^Z]$/i.test(t.date)&&(r=t.date.match(f))){var i=n(d(parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3]||1,10)),3),a=i[0],s=i[1],h=i[2];t.date="".concat(a,"-").concat(s,"-").concat(h).concat(r[4]||"")}return m.bind(this)(t)},a.InitJalali=function(){var t=n(o(this.$y,this.$M+1,this.$D),3),r=t[0],i=t[1],e=t[2];this.$jy=r,this.$jM=i-1,this.$jD=e},a.startOf=function(t,r){var i=this;if(!h(this))return g.bind(this)(t,r);var a=!!M(r)||r,s=u(t),o=function(t,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.$jy,s=n(d(e,r+1,t),3),h=s[0],u=s[1],o=s[2],f=k(new Date(h,u-1,o),i);return(a?f:f.endOf(l)).$set("hour",1)},f=(this.$W+(7-e.$fdow))%7;switch(s){case j:return a?o(1,0):o(0,0,this.$jy+1);case $:return a?o(1,this.$jM):o(0,(this.$jM+1)%12,this.$jy+parseInt((this.$jM+1)/12,10));case"week":return o(a?this.$jD-f:this.$jD+(6-f),this.$jM);default:return g.bind(this)(t,r)}},a.$set=function(t,r){var i=this;if(!h(this))return O.bind(this)(t,r);var e=function(t,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.$jy,a=n(d(e,r+1,t),3),s=a[0],h=a[1],u=a[2];return i.$d.setFullYear(s),i.$d.setMonth(h-1),i.$d.setDate(u),i};switch(u(t)){case"date":case l:e(r,this.$jM);break;case $:e(this.$jD,r);break;case j:e(this.$jD,this.$jM,r);break;default:return O.bind(this)(t,r)}return this.init(),this},a.add=function(t,n){var r=this;if(!h(this))return I.bind(this)(t,n);t=Number(t);var i=!n||1!==n.length&&"ms"!==n?u(n):n;if(["M",$].indexOf(i)>-1){var e=this.$jM+t,a=e<0?-Math.ceil(-e/12):parseInt(e/12,10),s=this.$jD,o=this.set(l,1).add(a,j).set($,e-12*a);return o.set(l,Math.min(o.daysInMonth(),s))}if(["y",j].indexOf(i)>-1)return function(n,i){var e=r.set("date",1).set(n,i+t);return e.set("date",Math.min(r.$jD,e.daysInMonth()))}(j,this.$jy);if(["d",l].indexOf(i)>-1){var d=new Date(this.$d);return d.setDate(d.getDate()+t),k(d,this)}return I.bind(this)(t,n)},a.format=function(t,n){var r=this;if(!h(this))return w.bind(this)(t,n);var i=t||"YYYY-MM-DDTHH:mm:ssZ",e=(n||this.$locale()).jmonths;return i.replace(c,function(t){if(t.indexOf("[")>-1)return t.replace(/\[|\]/g,"");switch(t){case"YY":return String(r.$jy).slice(-2);case"YYYY":return String(r.$jy);case"M":return String(r.$jM+1);case"MM":return v(r.$jM+1,2,"0");case"MMM":return e[r.$jM].slice(0,3);case"MMMM":return e[r.$jM];case"D":return String(r.$jD);case"DD":return v(r.$jD,2,"0");default:return w.bind(r)(t,n)}})},a.diff=function(t,n,r){if(!h(this))return Y.bind(this)(t,n,r);var i=u(n),a=e(t),s=b(this,a);switch(i){case j:s/=12;break;case $:break;default:return Y.bind(this)(t,n,r)}return r?s:p(s)},a.$g=function(t,n,r){return M(t)?this[n]:this.set(r,t)},a.year=function(t){return h(this)?this.$g(t,"$jy",j):C.bind(this)(t)},a.month=function(t){return h(this)?this.$g(t,"$jM",$):S.bind(this)(t)},a.date=function(t){return h(this)?this.$g(t,"$jD",l):J.bind(this)(t)},a.daysInMonth=function(){return h(this)?this.endOf($).$jD:x.bind(this)()},A&&(a.toArray=function(){return h(this)?[this.$jy,this.$jM,this.$jD,this.$H,this.$m,this.$s,this.$ms]:A.bind(this)()}),a.clone=function(){return k(this.toDate(),this)}}});