UNPKG

jalaliday

Version:

Persian (Jalali, Khorshidi) Plugin for Day.js

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