nepali-datepicker-vue
Version:
A Vue 3 Nepali Datepicker with TypeScript Support
2 lines (1 loc) • 31.8 kB
JavaScript
(function(V,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],a):(V=typeof globalThis<"u"?globalThis:V||self,a(V["NepaliDatePicker-Vue3"]={},V.Vue))})(this,function(V,a){"use strict";var y=[{year:1976,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1977,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1978,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1979,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1980,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1981,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1982,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1983,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1984,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1985,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:1986,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1987,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1988,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:1989,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1990,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1991,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1992,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1993,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1994,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1995,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:1996,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:1997,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1998,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:1999,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2e3,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2001,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2002,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2003,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2004,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2005,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2006,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2007,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2008,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2009,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2010,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2011,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2012,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2013,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2014,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2015,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2016,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2017,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2018,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2019,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2020,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2021,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2022,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2023,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2024,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2025,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2026,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2027,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2028,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2029,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2030,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2031,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2032,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2033,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2034,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2035,days:[30,32,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2036,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2037,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2038,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2039,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2040,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2041,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2042,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2043,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2044,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2045,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2046,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2047,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2048,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2049,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2050,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2051,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2052,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2053,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2054,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2055,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2056,days:[31,31,32,31,32,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2057,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2058,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2059,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2060,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2061,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2062,days:[30,32,31,32,31,31,29,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2063,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2064,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2065,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2066,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2067,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2068,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2069,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2070,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2071,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2072,days:[31,32,31,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2073,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2074,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2075,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2076,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2077,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2078,days:[31,31,31,32,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2079,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2080,days:[31,32,31,32,31,30,30,30,29,29,30,30],totalDays:0,daysTillNow:0},{year:2081,days:[31,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2082,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2083,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2084,days:[31,31,32,31,31,30,30,30,29,30,30,30],totalDays:0,daysTillNow:0},{year:2085,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2086,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2087,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2088,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2089,days:[30,32,31,32,31,30,30,30,29,30,29,31],totalDays:0,daysTillNow:0},{year:2090,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2091,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2092,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2093,days:[31,31,31,32,31,31,29,30,30,29,29,31],totalDays:0,daysTillNow:0},{year:2094,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2095,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2096,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0},{year:2097,days:[31,31,31,32,31,31,29,30,30,29,30,30],totalDays:0,daysTillNow:0},{year:2098,days:[31,31,32,31,31,31,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2099,days:[31,31,32,32,31,30,30,29,30,29,30,30],totalDays:0,daysTillNow:0},{year:2100,days:[31,32,31,32,31,30,30,30,29,29,30,31],totalDays:0,daysTillNow:0}],K=0;y.forEach(n=>{n.totalDays=n.days.reduce((e,t)=>e+t,0),K+=n.totalDays,n.daysTillNow=K});var x=new Date(1919,3,13).getTime(),q=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],L=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],j=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],U=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],A=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],G=["Bai","Jes","Asa","Shr","Bha","Asw","Kar","Man","Pou","Mag","Fal","Cha"],J=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],X=["बै","जे","अस","श्र","भा","आ","का","मं","पौ","मा","फा","चै"],te=["०","१","२","३","४","५","६","७","८","९"];function I(n){return n<10?`0${n}`:`${n}`}function S(n){let e="";for(let t=0;t<n.length;t+=1)e+=te[n.charCodeAt(t)-48];return e}function le(n){return e=>n<=2?String(e.getYear()).substring(2):n===3?String(e.getYear()).substring(1):String(e.getYear())}function se(n){return e=>S(n<=2?String(e.getYear()).substring(2):n===3?String(e.getYear()).substring(1):String(e.getYear()))}function re(n){return e=>n===1?String(e.getMonth()+1):n===2?I(e.getMonth()+1):n===3?G[e.getMonth()]:A[e.getMonth()]}function ne(n){return e=>n===1?S(String(e.getMonth()+1)):n===2?S(I(e.getMonth()+1)):n===3?X[e.getMonth()]:J[e.getMonth()]}function oe(n){return e=>n===1?String(e.getDate()):n===2?I(e.getDate()):n===3?L[e.getDay()]:q[e.getDay()]}function ye(n){return e=>n===1?S(String(e.getDate())):n===2?S(I(e.getDate())):n===3?U[e.getDay()]:j[e.getDay()]}function Z(n){return()=>n}var z={Y:le,y:se,M:re,m:ne,D:oe,d:ye};function ie(n){return n in z}function de(n){let e=!1,t="",o="",s=0;const d=[];for(let m=0;m<n.length;m+=1){const h=n[m];h!==o?(o!==""&&(d.push(z[o](s)),o="",s=0),h!=='"'?!ie(h)||e?t+=h:(t&&(d.push(Z(t)),t=""),o=h,s=1):e=!e):s+=1}return t?d.push(Z(t)):o&&d.push(z[o](s)),d}function ce(n,e){return de(e).map(t=>t(n)).join("")}function ee(n){const e=n.split(/[-./]/,3),[t,o=1,s=1]=e.map(m=>{const h=parseInt(m,10);if(Number.isNaN(h))throw new Error("Invalid date");return h});if(t<y[0].year||t>=y[0].year+y.length)throw new Error(`Nepal year out of range. Supported range: ${y[0].year}-${y[0].year+y.length-1}`);if(o<1||o>12)throw new Error("Invalid nepali month must be between 1 - 12");const d=y[t-y[0].year].days[o-1];if(s<1||s>d)throw new Error(`Invalid nepali date must be between 1 - ${d} in ${t} ${o}`);return[t,o-1,s]}var u=class c{constructor(){if(arguments.length===0)this.setEnglishDate(new Date);else if(arguments.length===1){const e=arguments.length<=0?void 0:arguments[0];if(typeof e=="object")if(e instanceof Date)this.setEnglishDate(e);else{if(!(e instanceof c))throw new Error("Invalid date argument");this.timestamp=e.timestamp,this.year=e.year,this.month=e.month,this.day=e.day}else if(typeof e=="string")this.set(...ee(e));else{if(typeof e!="number")throw new Error("Invalid date argument");this.setEnglishDate(new Date(e))}}else{if(arguments.length!==3)throw new Error("Invalid argument syntax");this.set(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2])}}setEnglishDate(e){this.timestamp=e;let t=Math.floor((this.timestamp.getTime()-x)/864e5),o=Math.floor(t/366);for(;t>=y[o].daysTillNow;)o+=1;t-=y[o-1]?y[o-1].daysTillNow:0;const s=y[o];for(this.year=s.year,this.month=0;t>=s.days[this.month];)this.month+=1,t-=s.days[this.month-1];this.day=t+1}getEnglishDate(){return this.timestamp}parse(e){this.set(...ee(e))}getYear(){return this.year}getMonth(){return this.month}getDate(){return this.day}getDay(){return this.timestamp.getDay()}getHours(){return this.timestamp.getHours()}getMinutes(){return this.timestamp.getMinutes()}getSeconds(){return this.timestamp.getSeconds()}getMilliseconds(){return this.timestamp.getMilliseconds()}getTime(){return this.timestamp.getTime()}setYear(e){this.set(e,this.month,this.day)}setMonth(e){this.set(this.year,e,this.day)}setDate(e){this.set(this.year,this.month,e)}set(e,t,o){const s=e+Math.floor(t/12)-y[0].year,d=y[s];let m=d.daysTillNow-d.totalDays;const h=t%12,Y=h<0?12+h:h;for(let g=0;g<Y;g+=1)m+=d.days[g];m+=o-1,this.setEnglishDate(new Date(x+864e5*m))}format(e){return ce(this,e)}toString(){return`${this.year}/${this.month+1}/${this.day}`}addDays(e){const t=new Date(this.timestamp.getTime()+864e5*e);return new c(t)}addMonths(e){let t=this.year,o=this.month+e;t+=Math.floor(o/12),o%=12,o<0&&(o+=12,t-=1);const s=t-y[0].year;if(s<0||s>=y.length)throw new Error("Resulting date is out of supported range");const d=y[s].days[o],m=Math.min(this.day,d);return new c(t,o,m)}addYears(e){const t=this.year+e;if(t<y[0].year||t>=y[0].year+y.length)throw new Error("Resulting date is out of supported range");const o=t-y[0].year;if(this.month===11&&this.day===29){const s=y[o].days[11];if(s<29)return new c(t,11,s)}return new c(t,this.month,this.day)}static minimum(){return new Date(x)}static maximum(){return new Date(x+864e5*y[y.length-1].daysTillNow)}daysInMonth(){const e=this.year-y[0].year;return y[e].days[this.month]}isLeapYear(){const e=this.year-y[0].year;return y[e].totalDays===366}getWeeksInMonth(){const e=new c(this.year,this.month,1).getDay(),t=this.daysInMonth();return Math.ceil((e+t)/7)}diff(e,t){switch(t){case"day":return Math.floor((this.timestamp.getTime()-e.timestamp.getTime())/864e5);case"month":return 12*(this.year-e.year)+(this.month-e.month);case"year":return this.year-e.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const e=new Date(this.timestamp);return e.setHours(0,0,0,0),new c(e)}endOfDay(){const e=new Date(this.timestamp);return e.setHours(23,59,59,999),new c(e)}startOfWeek(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(e<0||e>6||!Number.isInteger(e))throw new Error("startOfWeek must be an integer between 0 and 6");const t=(this.getDay()-e+7)%7;return this.clone().startOfDay().addDays(-t)}endOfWeek(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.startOfWeek(e).addDays(6).endOfDay()}startOfMonth(){return new c(this.year,this.month,1)}endOfMonth(){const e=this.daysInMonth();return new c(this.year,this.month,e).endOfDay()}startOfYear(){return new c(this.year,0,1)}endOfYear(){const e=this.year-y[0].year,t=y[e].days[11];return new c(this.year,11,t).endOfDay()}static getMonthName(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],o=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(e<0||e>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=o?t?X[e]:J[e]:t?G[e]:A[e],s}static getDayName(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],o=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(e<0||e>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=o?t?U[e]:j[e]:t?L[e]:q[e],s}static isValid(e,t,o){try{if(e<y[0].year||e>=y[0].year+y.length||t<0||t>11)return!1;const s=e-y[0].year,d=y[s].days[t];return!(o<1||o>d)}catch{return!1}}isValid(){return c.isValid(this.year,this.month,this.day)}static getCalendarDays(e,t){if(!c.isValid(e,t,1))throw new Error("Invalid year or month");const o={year:0,month:0,days:[]},s={year:0,month:0,days:[]},d={year:0,month:0,days:[]},m=e-y[0].year,h=new c(e,t,1).getDay(),Y=y[m].days[t];s.year=e,s.month=t;let g=t-1,w=e,v=t+1,k=e;if(g<0&&(g=11,w--),w>=y[0].year&&(o.year=w,o.month=g),w>=y[0].year&&h>0){const D=w-y[0].year,E=y[D].days[g];for(let p=0;p<h;p++)o.days.push(E-h+p+1)}for(let D=1;D<=Y;D++)s.days.push(D);v>11&&(v=0,k++),k<y[0].year+y.length&&(d.year=k,d.month=v);const M=42-h-s.days.length;if(k<y[0].year+y.length&&M>0)for(let D=1;D<=M;D++)d.days.push(D);return{prevRemainingDays:h,prevMonth:o,currentMonth:s,nextMonth:d,remainingDays:M}}clone(){return new c(this)}isAfter(e){return this.timestamp.getTime()>e.timestamp.getTime()}isBefore(e){return this.timestamp.getTime()<e.timestamp.getTime()}isEqual(e){return this.year===e.year&&this.month===e.month&&this.day===e.day}isSame(e,t){switch(t){case"year":return this.year===e.year;case"month":return this.year===e.year&&this.month===e.month;case"day":return this.isEqual(e);default:throw new Error("Invalid unit for comparison")}}static getQuarter(e,t){if(e<1||e>4||!Number.isInteger(e))throw new Error("Quarter must be an integer between 1 and 4");const o=t??new c().getYear(),s=3*(e-1);return{start:new c(o,s,1),end:new c(o,s+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(e){const t=e??new c().getYear();return{Q1:c.getQuarter(1,t),Q2:c.getQuarter(2,t),Q3:c.getQuarter(3,t),Q4:c.getQuarter(4,t)}}static getCurrentFiscalYear(){const e=new c,t=e.getYear();return e.getMonth()<3?t-1:t}static getFiscalYearQuarter(e,t){if(e<1||e>4||!Number.isInteger(e))throw new Error("Quarter must be an integer between 1 and 4");const o=t??c.getCurrentFiscalYear();let s=o,d=3*(e-1)+3;e===4&&(s=o+1,d=0),d>11&&(s++,d-=12);let m=d+2,h=s;return m>11&&(h++,m-=12),{start:new c(s,d,1),end:new c(h,m,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const e=this.getMonth();return e>=3&&e<=5?1:e>=6&&e<=8?2:e>=9&&e<=11?3:4}getCurrentFiscalYearQuarterDates(){const e=this.getCurrentFiscalYearQuarter(),t=c.getCurrentFiscalYear();return c.getFiscalYearQuarter(e,t)}static getFiscalYearQuarters(e){const t=e??c.getCurrentFiscalYear();return{Q1:c.getFiscalYearQuarter(1,t),Q2:c.getFiscalYearQuarter(2,t),Q3:c.getFiscalYearQuarter(3,t),Q4:c.getFiscalYearQuarter(4,t)}}};const ue=["placeholder","id"],me={key:0,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",width:"1em",height:"1em"},he=["id"],we={class:"calendar__body"},ge={class:"calendar__head"},De={class:"calendar__header_label"},fe={key:0},Ne={key:2},pe={key:4},Te={class:"calendar__container"},Me={key:0},ke={class:"calendar__weeks"},Ee={class:"calendar__days"},ve=["title","onClick"],Ve=["title","onClick"],Ye=["title","onClick"],Ce=["onClick"],Be=["onClick"],O=10,_e=((n,e)=>{const t=n.__vccOpts||n;for(const[o,s]of e)t[o]=s;return t})(a.defineComponent({__name:"NepaliDatePicker",props:{modelValue:{type:String,default:""},yearSelect:{type:Boolean,default:!0},monthSelect:{type:Boolean,default:!0},class:{type:String,default:""},placeholder:{type:String,default:""},minDate:{type:String,required:!1},maxDate:{type:String,required:!1},inputClass:{type:String,default:""}},emits:["update:modelValue","onSelect"],setup(n,{emit:e}){const t=n,o=e,s=a.ref(t.modelValue?new u(t.modelValue):new u),d=a.ref(!1),m=a.ref(t.modelValue),h=a.ref(t.modelValue?new u(t.modelValue).getYear():new u().getYear()),Y=a.ref(t.modelValue?new u(t.modelValue).getMonth():new u().getMonth()),g=a.ref(!1),w=a.ref(!1),v=a.ref(y[0].year),k=a.ref(y.length+y[0].year-1),M=a.ref(0),D=a.ref(),E=a.ref(!1),p=a.ref(),C=a.ref(!1);a.onMounted(()=>{R()}),a.watch(()=>t.modelValue,()=>{m.value=t.modelValue,h.value=t.modelValue?new u(t.modelValue).getYear():new u().getYear(),Y.value=t.modelValue?new u(t.modelValue).getMonth():new u().getMonth(),s.value=t.modelValue?new u(t.modelValue):new u}),a.watch(()=>t.minDate,()=>{R()}),a.watch(()=>t.maxDate,()=>{R()});const R=()=>{if(t.minDate)try{D.value=new u(t.minDate),E.value=!0}catch(r){D.value=null,console.error("Invalid Minimum Date",r),E.value=!1}if(t.maxDate)try{p.value=new u(t.maxDate),C.value=!0}catch(r){console.error("Invalid Maximum Date",r),C.value=!1}C.value&&E.value&&(D.value.isAfter(p.value)?(console.error("Minimum Date is Greater than Maximum Date"),C.value=!1,E.value=!1):D.value.isEqual(p.value)&&(console.error("Minimum Date is Equal to Maximum Date"),C.value=!1,E.value=!1))},f=a.computed(()=>u.getCalendarDays(s.value.year,s.value.month)),T=(r,l)=>new u(r.year,r.month,l),Se=()=>{if(w.value=!w.value,g.value=!1,w.value){const r=s.value.year,l=y.findIndex(i=>i.year===r);M.value=Math.floor(l/O)}},be=()=>{const r=new u;B(r)&&(E.value?s.value=new u(D.value.year,D.value.month,D.value.day):C.value&&(s.value=new u(p.value.year,p.value.month,p.value.day)))},Q=(r,l)=>{r?d.value=!0:l?d.value=!1:d.value=!d.value,d.value?(be(),document.addEventListener("click",P)):(document.removeEventListener("click",P),ae())},xe=()=>{g.value=!g.value,w.value=!1},Ie=()=>{let r=s.value.month+1,l=s.value.year;r>11&&(l++,r=0),l+1<v.value||l>k.value||($(r,l),s.value=new u(l,r,1))},Oe=()=>{if(w.value)M.value<Ae.value-1&&M.value++;else{let r=s.value.month,l=s.value.year+1;l<v.value||l>k.value||($(r,l),s.value=new u(l,r,1))}},Qe=()=>{let r=s.value.month-1,l=s.value.year;r<0&&(l--,r=11),l<v.value||l>k.value||($(r,l),s.value=new u(l,r,1))},Fe=()=>{if(w.value)M.value>0&&M.value--;else{let r=s.value.month,l=s.value.year-1;l<v.value||l>k.value||($(r,l),s.value=new u(l,r,1))}},$e=r=>t.modelValue?new u(t.modelValue).getTime()===r.getTime():!1,He=r=>s.value.month==r,Pe=r=>s.value.year==r,B=r=>!!(E.value&&r.isBefore(D.value)||C.value&&r.isAfter(p.value)),Le=r=>{const l=new u;return r.day===l.day&&r.year===l.year&&r.month===l.month},F=a.computed(()=>{const r=y.map(i=>i.year),l=M.value*O;return r.slice(l,l+O)}),Ae=a.computed(()=>Math.ceil(y.length/O)),W=r=>{let l="";const i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",N=i.length;let _=0;for(;_<r;)l+=i.charAt(Math.floor(Math.random()*N)),_+=1;return l},b=W(3)+W(3)+W(3),$=(r,l)=>{Y.value=r,h.value=l},ze=r=>{Y.value=r,s.value.setMonth(r),g.value=!1},Re=r=>{h.value=r,s.value.setYear(r),w.value=!1,t.monthSelect&&(g.value=!0)},H=r=>{B(r)||(s.value=r,m.value=s.value.format("YYYY-MM-DD"),o("update:modelValue",m.value),o("onSelect",m.value),Q())},We=()=>{/^\d{4}-\d{2}-\d{2}$/.test(m.value)||(m.value=t.modelValue);try{const r=new u(m.value);if(B(r)){console.warn("Entered date is outside allowed range"),m.value=t.modelValue;return}H(r)}catch{m.value=t.modelValue}},P=r=>{const l=document.getElementById("nepali-calendar-"+b),i=document.getElementById("nepali-date-input-"+b);l&&!l.contains(r.target)&&i&&!i.contains(r.target)&&(d.value=!1,ae(),document.removeEventListener("click",P))},ae=()=>{g.value=!1,w.value=!1,s.value=t.modelValue?new u(t.modelValue):new u},Ke=()=>{g.value=!1,w.value=!1,s.value=new u,o("update:modelValue",""),o("onSelect",""),Q(!1,!0)};return a.onUnmounted(()=>{document.removeEventListener("click",P)}),(r,l)=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["nepali-datepicker",t.class]),key:b},[a.createElementVNode("div",{class:a.normalizeClass(["calendar-input-div",n.modelValue?"calendar-input-contain-value":""])},[a.withDirectives(a.createElementVNode("input",{type:"text",class:a.normalizeClass(["calendar-input",t.inputClass]),onClick:l[0]||(l[0]=i=>Q(!0)),"onUpdate:modelValue":l[1]||(l[1]=i=>m.value=i),placeholder:n.placeholder,"aria-haspopup":"true",id:"nepali-date-input-"+b,onKeyup:l[2]||(l[2]=a.withKeys(i=>We(),["enter"]))},null,42,ue),[[a.vModelText,m.value]]),a.createElementVNode("div",{class:"calendar-input-icon calender-icon",onClick:l[3]||(l[3]=a.withModifiers(i=>Q(!0),["stop"]))},[d.value&&n.modelValue?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("svg",me,[...l[11]||(l[11]=[a.createElementVNode("path",{d:"M940.218 107.055H730.764v-60.51H665.6v60.51H363.055v-60.51H297.89v60.51H83.78c-18.617 0-32.581 13.963-32.581 32.581v805.237c0 18.618 13.964 32.582 32.582 32.582h861.09c18.619 0 32.583-13.964 32.583-32.582V139.636c-4.655-18.618-18.619-32.581-37.237-32.581zm-642.327 65.163v60.51h65.164v-60.51h307.2v60.51h65.163v-60.51h176.873v204.8H116.364v-204.8H297.89zM116.364 912.291V442.18H912.29v470.11H116.364z"},null,-1)])]))]),n.modelValue?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["calendar-input-icon",d.value?"":"calendar-clear-input"]),onClick:l[4]||(l[4]=a.withModifiers(i=>Ke(),["stop"]))},[...l[12]||(l[12]=[a.createElementVNode("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[a.createElementVNode("path",{id:"Vector",d:"M18 18L12 12M12 12L6 6M12 12L18 6M12 12L6 18","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],2)):a.createCommentVNode("",!0)],2),a.createVNode(a.Transition,{name:"calendar-animation"},{default:a.withCtx(()=>[d.value?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["calendar",{show:d.value}]),id:"nepali-calendar-"+b,style:{"user-select":"none"}},[a.createElementVNode("div",we,[a.createElementVNode("div",ge,[a.createElementVNode("div",null,[a.createElementVNode("button",{class:"calendar__toggle_button",onClick:l[5]||(l[5]=i=>Fe())},[...l[13]||(l[13]=[a.createElementVNode("i",{class:"calendar-icon-double-left"},null,-1)])]),!g.value&&!w.value?(a.openBlock(),a.createElementBlock("button",{key:0,class:"calendar__toggle_button",onClick:l[6]||(l[6]=i=>Qe())},[...l[14]||(l[14]=[a.createElementVNode("i",{class:"calendar-icon-left"},null,-1)])])):a.createCommentVNode("",!0)]),a.createElementVNode("div",De,[n.monthSelect?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("a",fe,a.toDisplayString(s.value.format("MMMM")),1)),!g.value&&!w.value&&n.monthSelect?(a.openBlock(),a.createElementBlock("a",{key:1,class:"calendar__header_selector",onClick:a.withModifiers(xe,["stop"])},a.toDisplayString(s.value.format("MMMM")),1)):a.createCommentVNode("",!0),n.yearSelect?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("a",Ne,a.toDisplayString(s.value.format("YYYY")),1)),!w.value&&n.yearSelect?(a.openBlock(),a.createElementBlock("a",{key:3,class:"calendar__header_selector",onClick:a.withModifiers(Se,["stop"])},a.toDisplayString(s.value.format("YYYY")),1)):a.createCommentVNode("",!0),w.value&&n.yearSelect?(a.openBlock(),a.createElementBlock("a",pe,a.toDisplayString(F.value[0])+" ~ "+a.toDisplayString(F.value[F.value.length-1]),1)):a.createCommentVNode("",!0)]),a.createElementVNode("div",null,[!g.value&&!w.value?(a.openBlock(),a.createElementBlock("button",{key:0,class:"calendar__toggle_button",onClick:l[7]||(l[7]=i=>Ie())},[...l[15]||(l[15]=[a.createElementVNode("i",{class:"calendar-icon-right"},null,-1)])])):a.createCommentVNode("",!0),a.createElementVNode("button",{class:"calendar__toggle_button",onClick:l[8]||(l[8]=i=>Oe())},[...l[16]||(l[16]=[a.createElementVNode("i",{class:"calendar-icon-double-right"},null,-1)])])])]),a.createElementVNode("div",Te,[!g.value&&!w.value?(a.openBlock(),a.createElementBlock("div",Me,[a.createElementVNode("div",ke,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(a.unref(L),(i,N)=>(a.openBlock(),a.createElementBlock("div",{key:N,class:"calendar__weekday"},a.toDisplayString(i),1))),128))]),a.createElementVNode("div",Ee,[f.value.prevRemainingDays>0?(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:0},a.renderList(f.value.prevMonth.days,(i,N)=>(a.openBlock(),a.createElementBlock("div",{key:N,class:a.normalizeClass(["calendar__day calendar__not_current_month",{calendar__disable_date:B(T(f.value.prevMonth,i))}]),title:T(f.value.prevMonth,i).format("YYYY-MM-DD"),onClick:_=>H(T(f.value.prevMonth,i))},[a.createElementVNode("span",null,a.toDisplayString(i),1)],10,ve))),128)):a.createCommentVNode("",!0),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(f.value.currentMonth.days,(i,N)=>(a.openBlock(),a.createElementBlock("div",{key:N,class:a.normalizeClass(["calendar__day",{calendar__selected:$e(T(f.value.currentMonth,i)),calendar__today:Le(T(f.value.currentMonth,i)),calendar__disable_date:B(T(f.value.currentMonth,i))}]),title:T(f.value.currentMonth,i).format("YYYY-MM-DD"),onClick:_=>H(T(f.value.currentMonth,i))},[a.createElementVNode("span",null,a.toDisplayString(i),1)],10,Ve))),128)),f.value.remainingDays>0?(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:1},a.renderList(f.value.nextMonth.days,(i,N)=>(a.openBlock(),a.createElementBlock("div",{key:N,class:a.normalizeClass(["calendar__day calendar__not_current_month",{calendar__disable_date:B(T(f.value.nextMonth,i))}]),title:T(f.value.nextMonth,i).format("YYYY-MM-DD"),onClick:_=>H(T(f.value.nextMonth,i))},[a.createElementVNode("span",null,a.toDisplayString(i),1)],10,Ye))),128)):a.createCommentVNode("",!0)])])):a.createCommentVNode("",!0),g.value?(a.openBlock(),a.createElementBlock("div",{key:1,class:"calendar__months",onClick:l[9]||(l[9]=a.withModifiers(()=>{},["stop"]))},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(a.unref(A),(i,N)=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["calendar_month",{calendar__selected:He(N)}]),onClick:_=>ze(N)},a.toDisplayString(i),11,Ce))),256))])):a.createCommentVNode("",!0),w.value?(a.openBlock(),a.createElementBlock("div",{key:2,class:"calendar__years",onClick:l[10]||(l[10]=a.withModifiers(()=>{},["stop"]))},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(F.value,i=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["calendar__year",{calendar__selected:Pe(i)}]),onClick:N=>Re(i)},a.toDisplayString(i),11,Be))),256))])):a.createCommentVNode("",!0)])])],10,he)):a.createCommentVNode("",!0)]),_:1})],2))}}),[["__scopeId","data-v-d902ca7c"]]);V.NepaliDatePicker=_e,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})});