nepali-datepicker-vue
Version:
A Vue 3 Nepali Datepicker with TypeScript Support
2 lines (1 loc) • 36.3 kB
JavaScript
(function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b["NepaliDatePicker-Vue3"]={},b.Vue))})(this,(function(b,e){"use strict";var d=[{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}],ie=0;d.forEach(o=>{o.totalDays=o.days.reduce((t,a)=>t+a,0),ie+=o.totalDays,o.daysTillNow=ie});var W=Date.UTC(1919,3,13),de=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],J=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ye=["आइतबार","सोमबार","मंगलबार","बुधबार","बिहिबार","शुक्रबार","शनिबार"],ce=["आइत","सोम","मंगल","बुध","बिहि","शुक्र","शनि"],Z=["Baisakh","Jestha","Asar","Shrawan","Bhadra","Aswin","Kartik","Mangsir","Poush","Magh","Falgun","Chaitra"],ue=["Bai","Jes","Asa","Shr","Bhd","Asw","Kar","Man","Pou","Mag","Fal","Cha"],me=["बैशाख","जेठ","असार","श्रावण","भाद्र","आश्विन","कार्तिक","मंसिर","पौष","माघ","फाल्गुण","चैत्र"],he=["बै","जे","अ","श्रा","भा","आ","का","मं","पौ","मा","फा","चै"],ke=["०","१","२","३","४","५","६","७","८","९"];function R(o){return o<10?`0${String(o)}`:String(o)}function P(o){let t="";for(let a=0;a<o.length;a+=1)t+=ke[o.charCodeAt(a)-48];return t}function Ee(o){return t=>o<=2?String(t.getYear()).substring(2):o===3?String(t.getYear()).substring(1):String(t.getYear())}function Me(o){return t=>P(o<=2?String(t.getYear()).substring(2):o===3?String(t.getYear()).substring(1):String(t.getYear()))}function Ve(o){return t=>o===1?String(t.getMonth()+1):o===2?R(t.getMonth()+1):o===3?ue[t.getMonth()]:Z[t.getMonth()]}function Be(o){return t=>o===1?P(String(t.getMonth()+1)):o===2?P(R(t.getMonth()+1)):o===3?he[t.getMonth()]:me[t.getMonth()]}function Ce(o){return t=>o===1?String(t.getDate()):o===2?R(t.getDate()):o===3?J[t.getDay()]:de[t.getDay()]}function Ye(o){return t=>o===1?P(String(t.getDate())):o===2?P(R(t.getDate())):o===3?ce[t.getDay()]:ye[t.getDay()]}function we(o){return()=>o}var ee={Y:Ee,y:Me,M:Ve,m:Be,D:Ce,d:Ye};function Se(o){return o in ee}function _e(o){let t=!1,a="",i="",s=0;const y=[];for(const c of o)c!==i?(i!==""&&(y.push(ee[i](s)),i="",s=0),c!=='"'?!Se(c)||t?a+=c:(a&&(y.push(we(a)),a=""),i=c,s=1):t=!t):s+=1;return a?y.push(we(a)):i&&y.push(ee[i](s)),y}function be(o,t){return _e(t).map(a=>a(o)).join("")}function ge(o){const t=o.split(/[-./]/,3),[a,i=1,s=1]=t.map(c=>{const D=parseInt(c,10);if(Number.isNaN(D))throw new Error("Invalid date");return D});if(a<d[0].year||a>=d[0].year+d.length)throw new Error("Nepal year out of range");if(i<1||i>12)throw new Error("Invalid nepali month must be between 1 - 12");const y=d[a-d[0].year].days[i-1];if(s<1||s>y)throw new Error(`Invalid nepali date must be between 1 - ${String(y)} in ${String(a)} ${String(i)}`);return[a,i-1,s]}var m=class u{constructor(t,a,i){if(t==null)this.setEnglishDate(new Date);else if(typeof t=="object")if(t instanceof Date)this.setEnglishDate(t);else{if(!(t instanceof u))throw new Error("Invalid argument syntax");this.timestamp=t.timestamp,this.year=t.year,this.month=t.month,this.day=t.day}else if(typeof t=="string")this.set(...ge(t));else if(typeof t=="number"&&a!==void 0&&i!==void 0)this.set(t,a,i);else{if(typeof t!="number")throw new Error("Invalid argument syntax");this.setEnglishDate(new Date(t))}}setEnglishDate(t){var a,i;this.timestamp=t;const s=Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate());let y=Math.floor((s-W)/864e5),c=Math.floor(y/366);for(;y>=d[c].daysTillNow;)c+=1;y-=(a=(i=d[c-1])===null||i===void 0?void 0:i.daysTillNow)!==null&&a!==void 0?a:0;const D=d[c];for(this.year=D.year,this.month=0;y>=D.days[this.month];)this.month+=1,y-=D.days[this.month-1];this.day=y+1}set(t,a,i){const s=t+Math.floor(a/12)-d[0].year;if(s<0||s>=d.length)throw new Error("Nepal year out of range!");const y=d[s];let c=y.daysTillNow-y.totalDays;const D=a%12,O=D<0?12+D:D;for(let h=0;h<O;h+=1)c+=y.days[h];c+=i-1;const T=new Date(W+864e5*c);this.setEnglishDate(T)}format(t){return be(this,t)}clone(){return new u(this)}toString(){return`${String(this.year)}/${String(this.month+1)}/${String(this.day)}`}getEnglishDate(){return this.timestamp}parse(t){this.set(...ge(t))}getYear(){return this.year}getMonth(){return this.month}getDay(){return this.timestamp.getDay()}getDate(){return this.day}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(t){this.set(t,this.month,this.day)}setMonth(t){this.set(this.year,t,this.day)}setDate(t){this.set(this.year,this.month,t)}addDays(t){const a=new Date(this.timestamp.getTime()+864e5*t);return new u(a)}addMonths(t){let a=this.year,i=this.month+t;a+=Math.floor(i/12),i%=12,i<0&&(i+=12,a-=1);const s=a-d[0].year;if(s<0||s>=d.length)throw new Error("Resulting date is out of supported range");const y=d[s].days[i],c=Math.min(this.day,y);return new u(a,i,c)}addYears(t){const a=this.year+t;if(a<d[0].year||a>=d[0].year+d.length)throw new Error("Resulting date is out of supported range");const i=a-d[0].year,s=d[i].days[this.month],y=Math.min(this.day,s);return new u(a,this.month,y)}static minimum(){return new Date(W)}static maximum(){return new Date(W+864e5*d[d.length-1].daysTillNow)}daysInMonth(t,a){if(a!==void 0&&(a<0||a>11))throw new Error("Invalid month index, must be between 0-11");const i=(t??this.year)-d[0].year;return d[i].days[a??this.month]}isLeapYear(){const t=this.year-d[0].year;return d[t].totalDays>=366}getWeeksInMonth(){const t=new u(this.year,this.month,1).getDay(),a=this.daysInMonth();return Math.ceil((t+a)/7)}diff(t,a){switch(a){case"day":return Math.floor((this.timestamp.getTime()-t.timestamp.getTime())/864e5);case"month":return 12*(this.year-t.year)+(this.month-t.month);case"year":return this.year-t.year;default:throw new Error("Invalid unit for diff calculation")}}startOfDay(){const t=new Date(this.timestamp);return t.setHours(0,0,0,0),new u(t)}endOfDay(){const t=new Date(this.timestamp);return t.setHours(23,59,59,999),new u(t)}startOfWeek(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");const a=(this.getDay()-t+7)%7;return this.clone().startOfDay().addDays(-a)}endOfWeek(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(t<0||t>6||!Number.isInteger(t))throw new Error("startOfWeek must be an integer between 0 and 6");return this.startOfWeek(t).addDays(6).endOfDay()}startOfMonth(){return new u(this.year,this.month,1)}endOfMonth(){const t=this.daysInMonth();return new u(this.year,this.month,t).endOfDay()}startOfYear(){return new u(this.year,0,1)}endOfYear(){const t=this.year-d[0].year,a=d[t].days[11];return new u(this.year,11,a).endOfDay()}static getMonthName(t){let a=arguments.length>1&&arguments[1]!==void 0&&arguments[1],i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(t<0||t>11)throw new Error("Invalid month index, must be between 0-11");let s="";return s=i?a?he[t]:me[t]:a?ue[t]:Z[t],s}static getDayName(t){let a=arguments.length>1&&arguments[1]!==void 0&&arguments[1],i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(t<0||t>6)throw new Error("Invalid day index, must be between 0-6");let s="";return s=i?a?ce[t]:ye[t]:a?J[t]:de[t],s}static isValid(t,a,i){try{if(t<d[0].year||t>=d[0].year+d.length||a<0||a>11)return!1;const s=t-d[0].year,y=d[s].days[a];return!(i<1||i>y)}catch{return!1}}isValid(){return u.isValid(this.year,this.month,this.day)}static getCalendarDays(t,a){if(!u.isValid(t,a,1))throw new Error("Invalid year or month");const i={year:0,month:0,days:[]},s={year:0,month:0,days:[]},y={year:0,month:0,days:[]},c=t-d[0].year,D=new u(t,a,1).getDay(),O=d[c].days[a];s.year=t,s.month=a;let T=a-1,h=t,E=a+1,Y=t;if(T<0&&(T=11,h--),h>=d[0].year&&(i.year=h,i.month=T),h>=d[0].year&&D>0){const g=h-d[0].year,S=d[g].days[T];for(let v=0;v<D;v++)i.days.push(S-D+v+1)}for(let g=1;g<=O;g++)s.days.push(g);E>11&&(E=0,Y++),Y<d[0].year+d.length&&(y.year=Y,y.month=E);const B=42-D-s.days.length;if(Y<d[0].year+d.length&&B>0)for(let g=1;g<=B;g++)y.days.push(g);return{prevRemainingDays:D,prevMonth:i,currentMonth:s,nextMonth:y,remainingDays:B}}isAfter(t){return this.timestamp.getTime()>t.timestamp.getTime()}isBefore(t){return this.timestamp.getTime()<t.timestamp.getTime()}isEqual(t){return this.year===t.year&&this.month===t.month&&this.day===t.day}isSame(t,a){switch(a){case"year":return this.year===t.year;case"month":return this.year===t.year&&this.month===t.month;case"day":return this.isEqual(t);default:throw new Error("Invalid unit for comparison")}}static getQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const i=a??new u().getYear(),s=3*(t-1);return{start:new u(i,s,1),end:new u(i,s+2,1).endOfMonth()}}getCurrentQuarter(){return Math.floor(this.month/3)+1}static getQuarters(t){const a=t??new u().getYear();return{Q1:u.getQuarter(1,a),Q2:u.getQuarter(2,a),Q3:u.getQuarter(3,a),Q4:u.getQuarter(4,a)}}static getCurrentFiscalYear(){const t=new u,a=t.getYear();return t.getMonth()<3?a-1:a}static getFiscalYearQuarter(t,a){if(t<1||t>4||!Number.isInteger(t))throw new Error("Quarter must be an integer between 1 and 4");const i=a??u.getCurrentFiscalYear();let s=i,y=3*(t-1)+3;t===4&&(s=i+1,y=0),y>11&&(s++,y-=12);let c=y+2,D=s;return c>11&&(D++,c-=12),{start:new u(s,y,1),end:new u(D,c,1).endOfMonth()}}getCurrentFiscalYearQuarter(){const t=this.getMonth();return t>=3&&t<=5?1:t>=6&&t<=8?2:t>=9&&t<=11?3:4}getCurrentFiscalYearQuarterDates(){const t=this.getCurrentFiscalYearQuarter(),a=u.getCurrentFiscalYear();return u.getFiscalYearQuarter(t,a)}static getFiscalYearQuarters(t){const a=t??u.getCurrentFiscalYear();return{Q1:u.getFiscalYearQuarter(1,a),Q2:u.getFiscalYearQuarter(2,a),Q3:u.getFiscalYearQuarter(3,a),Q4:u.getFiscalYearQuarter(4,a)}}};const xe=["id"],Ie=["placeholder","id","readonly","disabled"],Oe={key:0,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",width:"1em",height:"1em"},Fe=["id"],$e={class:"calendar__body"},He={class:"calendar__head"},Qe={class:"calendar__header_label"},Le={key:0},Ae={key:2},Pe={key:4},ze={class:"calendar__container"},We={key:0},Re={class:"calendar__weeks"},Ke={class:"calendar__days"},Ue=["title","onClick"],Xe={key:0,class:"calendar__english_day"},je=["title","onClick"],qe={key:0,class:"calendar__english_day"},Ge=["title","onClick"],Je={key:0,class:"calendar__english_day"},Ze=["onClick"],et=["onClick"],K=10,I=1,fe=((o,t)=>{const a=o.__vccOpts||o;for(const[i,s]of t)a[i]=s;return a})(e.defineComponent({__name:"NepaliDatePicker",props:{id:{default:""},modelValue:{default:""},yearSelect:{type:Boolean,default:!0},monthSelect:{type:Boolean,default:!0},class:{default:""},placeholder:{default:""},minDate:{default:""},maxDate:{default:""},inputClass:{default:""},clickSelect:{type:Boolean,default:!1},updateOnInputChange:{type:Boolean,default:!1},autoFormat:{type:Boolean,default:!0},miniEnglishDate:{type:Boolean,default:!1},highlightSaturday:{type:Boolean,default:!1},allowTyping:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","onSelect"],setup(o,{emit:t}){const a=o,i=t,s=e.ref(a.modelValue?new m(a.modelValue):new m),y=e.ref(!1),c=e.ref(a.modelValue),D=e.ref(a.modelValue?new m(a.modelValue).getYear():new m().getYear()),O=e.ref(a.modelValue?new m(a.modelValue).getMonth():new m().getMonth()),T=e.ref(!1),h=e.ref(!1),E=e.ref(d?.[0]?.year),Y=e.ref(d?.[d.length-1]?.year??0),B=e.ref(0),g=e.ref(),S=e.ref(!1),v=e.ref(),F=e.ref(!1),U=e.ref(!1),$=e.ref(0),De=e.ref(0),Ne=e.ref(!1),pe=e.ref(null);e.onMounted(()=>{ae()}),e.watch(()=>a.modelValue,()=>{c.value=a.modelValue,D.value=a.modelValue?new m(a.modelValue).getYear():new m().getYear(),O.value=a.modelValue?new m(a.modelValue).getMonth():new m().getMonth(),s.value=a.modelValue?new m(a.modelValue):new m}),e.watch(()=>a.minDate,()=>{ae()}),e.watch(()=>a.maxDate,()=>{ae()}),e.watch([T,h],()=>{y.value&&e.nextTick(()=>{C()})}),e.watch(()=>c.value,n=>{U.value=!0,a.updateOnInputChange&&/^\d{4}-\d{2}-\d{2}$/.test(n)&&oe(!0)});const te=()=>{a.disabled||(se(!0),a.clickSelect&&a.allowTyping&&document.getElementById("nepali-date-input-"+x)?.select())},ae=()=>{if(a.minDate)try{g.value=new m(a.minDate),S.value=!0}catch(n){g.value=void 0,console.error("Invalid Minimum Date",n),S.value=!1}if(a.maxDate)try{v.value=new m(a.maxDate),F.value=!0}catch(n){console.error("Invalid Maximum Date",n),F.value=!1}F.value&&S.value&&(g.value&&v.value&&g.value.isAfter(v.value)?(console.error("Minimum Date is Greater than Maximum Date"),F.value=!1,S.value=!1):g.value&&v.value&&g.value.isEqual(v.value)&&(console.error("Minimum Date is Equal to Maximum Date"),F.value=!1,S.value=!1))},p=e.computed(()=>m.getCalendarDays(s.value.year,s.value.month)),tt=e.computed(()=>({top:`${$.value}px`,left:`${De.value}px`})),at=()=>{const n=pe.value;if(!n)return{height:267,width:272};const l=n.style.transform;n.style.transform="none";const r=n.scrollHeight,f=n.scrollWidth;return n.style.transform=l,{height:r,width:f}},C=()=>{const n=document.getElementById("nepali-date-input-"+x),l=document.getElementById("nepali-calendar-"+x);if(!n||!l)return;const r=n.getBoundingClientRect(),f=window.innerHeight,N=window.innerWidth,{height:M,width:Q}=at();console.log(M,Q);const _=M,w=Q,V=r.top,L=f-r.bottom,z=L<_+I&&V>L;if(Ne.value=z,z)$.value=r.top+window.scrollY-_-I-1,$.value<window.scrollY&&($.value=window.scrollY+I);else{$.value=r.bottom+window.scrollY+I;const ve=f+window.scrollY-_-I;$.value>ve&&($.value=ve)}let A=r.left+window.scrollX;A+w>N+window.scrollX&&(A=r.right+window.scrollX-w),A<window.scrollX&&(A=window.scrollX+I),w>N&&(A=window.scrollX+I),De.value=A},k=(n,l)=>new m(n.year,n.month,l),le=n=>n.getEnglishDate().getDate(),ne=n=>n.getEnglishDate().getDay()===6,lt=()=>{if(h.value=!h.value,T.value=!1,h.value){const n=s.value.year,l=d.findIndex(r=>r.year===n);B.value=Math.floor(l/K)}},nt=()=>{const n=new m;H(n)&&(S.value&&g.value?s.value=new m(g.value.year,g.value.month,g.value.day):F.value&&v.value&&(s.value=new m(v.value.year,v.value.month,v.value.day)))},se=(n,l)=>{n?y.value=!0:l?y.value=!1:y.value=!y.value,y.value?(nt(),e.nextTick(()=>{C(),window.addEventListener("scroll",C,!0),window.addEventListener("resize",C)}),setTimeout(()=>{document.addEventListener("click",G)},0)):(document.removeEventListener("click",G),window.removeEventListener("scroll",C,!0),window.removeEventListener("resize",C),Te()),U.value&&(U.value=!1)},st=()=>{T.value=!T.value,h.value=!1},rt=()=>{let n=s.value.month+1,l=s.value.year;n>11&&(l++,n=0),E.value&&!(l+1<E.value||l>Y.value)&&(j(n,l),s.value=new m(l,n,1))},ot=()=>{if(h.value)B.value<ht.value-1&&B.value++;else{let n=s.value.month,l=s.value.year+1;E.value&&!(l<E.value||l>Y.value)&&(j(n,l),s.value=new m(l,n,1))}},it=()=>{let n=s.value.month-1,l=s.value.year;n<0&&(l--,n=11),E.value&&!(l<E.value||l>Y.value)&&(j(n,l),s.value=new m(l,n,1))},dt=()=>{if(h.value)B.value>0&&B.value--;else{let n=s.value.month,l=s.value.year-1;E.value&&!(l<E.value||l>Y.value)&&(j(n,l),s.value=new m(l,n,1))}},yt=n=>a.modelValue?new m(a.modelValue).getTime()===n.getTime():!1,ct=n=>s.value.month==n,ut=n=>s.value.year==n,H=n=>!!(S.value&&g.value&&n.isBefore(g.value)||F.value&&v.value&&n.isAfter(v.value)),mt=n=>{const l=new m;return n.day===l.day&&n.year===l.year&&n.month===l.month},X=e.computed(()=>{const n=d.map(r=>r.year),l=B.value*K;return n.slice(l,l+K)}),ht=e.computed(()=>Math.ceil(d.length/K)),re=n=>{let l="";const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",f=r.length;let N=0;for(;N<n;)l+=r.charAt(Math.floor(Math.random()*f)),N+=1;return l},x=re(5)+re(5)+re(5),j=(n,l)=>{O.value=n,D.value=l},wt=n=>{O.value=n,s.value.setMonth(n),T.value=!1},gt=n=>{D.value=n,s.value.setYear(n),h.value=!1,a.monthSelect&&(T.value=!0)},q=(n,l=!1)=>{H(n)||(s.value=n,c.value=s.value.format("YYYY-MM-DD"),i("update:modelValue",c.value),i("onSelect",c.value),l||se())},oe=(n=!1)=>{if(U.value){if(!/^\d{4}-\d{2}-\d{2}$/.test(c.value)){c.value=a.modelValue;return}try{const l=new m(c.value);if(H(l)){console.warn("Entered date is outside allowed range"),c.value=a.modelValue;return}q(l,n)}catch{c.value=a.modelValue}}},ft=n=>{if(!a.autoFormat){c.value=n.target.value;return}let r=n.target.value.replace(/[^0-9]/g,"").slice(0,9),f="",N="",M="",Q=31;if(r.length>=4?f=r.slice(0,4):f=r,r.length>=5){let w=r.charAt(4),V=r.charAt(5)||"";w==="0"?N=w+V:w==="1"?["0","1","2"].includes(V)?N=w+V:V?(N="0"+w,r=r.slice(0,5)+V+r.slice(6)):N=w:"23456789".includes(w)&&(N="0"+w),N==="00"&&(N="0")}if(/^\d{4}$/.test(f)&&/^\d{2}$/.test(N)&&(Q=s.value.endOfMonth().day),r.length>=7){let w=r.charAt(6),V=r.charAt(7)||"",L=r.charAt(8)||"";if(!L)"123456789".includes(w)&&(M="0"+w);else if(w==0){let z=parseInt(V+L);z>=1&&z<=Q?M=V+L:M=w+V}else M=w+V;(M==="00"||parseInt(M)>Q)&&(M="")}if(/^\d{4}$/.test(f)){let w=parseInt(f);try{if(g.value&&w<g.value.year||v.value&&w>v.value.year)throw Error("Check Fail");s.value.setYear(w)}catch{f=""}}if(/^\d{2}$/.test(N)){let w=parseInt(N)-1;try{if(g.value&&w<g.value.month||v.value&&w>v.value.month)throw Error("Check Fail");s.value.setMonth(w)}catch{N=""}}let _=f;N&&(_+="-"+N),M&&(_+="-"+M),n.target.value=_,c.value!=_&&(c.value=_)},G=n=>{const l=document.getElementById("nepali-calendar-"+x),r=document.getElementById("nepali-date-input-"+x);l&&!l.contains(n.target)&&r&&!r.contains(n.target)&&(y.value=!1,Te(),document.removeEventListener("click",G),window.removeEventListener("scroll",C,!0),window.removeEventListener("resize",C),oe(!0))},Te=()=>{T.value=!1,h.value=!1,s.value=a.modelValue?new m(a.modelValue):new m},Dt=()=>{T.value=!1,h.value=!1,s.value=new m,i("update:modelValue",""),i("onSelect",""),se(!1,!0)};return e.onUnmounted(()=>{document.removeEventListener("click",G),window.removeEventListener("scroll",C,!0),window.removeEventListener("resize",C)}),(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["nepali-datepicker",a.class]),key:x,id:o.id,onFocusin:l[11]||(l[11]=r=>te()),tabindex:"0"},[e.createElementVNode("div",{class:e.normalizeClass(["calendar-input-div",o.modelValue?"calendar-input-contain-value":""])},[e.withDirectives(e.createElementVNode("input",{type:"text",class:e.normalizeClass(["calendar-input",a.inputClass]),onClick:l[0]||(l[0]=r=>te()),"onUpdate:modelValue":l[1]||(l[1]=r=>c.value=r),placeholder:o.placeholder,"aria-haspopup":"true",id:"nepali-date-input-"+x,onKeyup:l[2]||(l[2]=e.withKeys(r=>oe(),["enter"])),onInput:ft,readonly:!o.allowTyping,disabled:o.disabled},null,42,Ie),[[e.vModelText,c.value]]),e.createElementVNode("div",{class:e.normalizeClass(["calendar-input-icon",o.disabled?"":"calendar-icon"]),onClick:l[3]||(l[3]=e.withModifiers(r=>te(),["stop"]))},[!(y.value&&o.modelValue)||o.disabled?(e.openBlock(),e.createElementBlock("svg",Oe,[...l[12]||(l[12]=[e.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)])])):e.createCommentVNode("",!0)],2),o.modelValue&&!o.disabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["calendar-input-icon",y.value?"":"calendar-clear-input"]),onClick:l[4]||(l[4]=e.withModifiers(r=>Dt(),["stop"]))},[...l[13]||(l[13]=[e.createElementVNode("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.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)):e.createCommentVNode("",!0)],2),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"calendar-animation"},{default:e.withCtx(()=>[y.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["calendar",{show:y.value,"calendar-above":Ne.value}]),id:"nepali-calendar-"+x,style:e.normalizeStyle([tt.value,{"user-select":"none"}]),ref_key:"calendarRef",ref:pe},[e.createElementVNode("div",$e,[e.createElementVNode("div",He,[e.createElementVNode("div",null,[e.createElementVNode("button",{class:"calendar__toggle_button",onClick:l[5]||(l[5]=r=>dt())},[...l[14]||(l[14]=[e.createElementVNode("i",{class:"calendar-icon-double-left"},null,-1)])]),!T.value&&!h.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"calendar__toggle_button",onClick:l[6]||(l[6]=r=>it())},[...l[15]||(l[15]=[e.createElementVNode("i",{class:"calendar-icon-left"},null,-1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Qe,[o.monthSelect?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",Le,e.toDisplayString(s.value.format("MMMM")),1)),!T.value&&!h.value&&o.monthSelect?(e.openBlock(),e.createElementBlock("a",{key:1,class:"calendar__header_selector",onClick:e.withModifiers(st,["stop"])},e.toDisplayString(s.value.format("MMMM")),1)):e.createCommentVNode("",!0),o.yearSelect?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("a",Ae,e.toDisplayString(s.value.format("YYYY")),1)),!h.value&&o.yearSelect?(e.openBlock(),e.createElementBlock("a",{key:3,class:"calendar__header_selector",onClick:e.withModifiers(lt,["stop"])},e.toDisplayString(s.value.format("YYYY")),1)):e.createCommentVNode("",!0),h.value&&o.yearSelect?(e.openBlock(),e.createElementBlock("a",Pe,e.toDisplayString(X.value[0])+" ~ "+e.toDisplayString(X.value[X.value.length-1]),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[!T.value&&!h.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"calendar__toggle_button",onClick:l[7]||(l[7]=r=>rt())},[...l[16]||(l[16]=[e.createElementVNode("i",{class:"calendar-icon-right"},null,-1)])])):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"calendar__toggle_button",onClick:l[8]||(l[8]=r=>ot())},[...l[17]||(l[17]=[e.createElementVNode("i",{class:"calendar-icon-double-right"},null,-1)])])])]),e.createElementVNode("div",ze,[!T.value&&!h.value?(e.openBlock(),e.createElementBlock("div",We,[e.createElementVNode("div",Re,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(J),(r,f)=>(e.openBlock(),e.createElementBlock("div",{key:f,class:"calendar__weekday"},e.toDisplayString(r),1))),128))]),e.createElementVNode("div",Ke,[p.value.prevRemainingDays>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(p.value.prevMonth.days,(r,f)=>(e.openBlock(),e.createElementBlock("div",{key:f,class:e.normalizeClass(["calendar__day calendar__not_current_month",{calendar__disable_date:H(k(p.value.prevMonth,r)),calendar__not_current_month_saturday:ne(k(p.value.prevMonth,r))&&o.highlightSaturday}]),title:k(p.value.prevMonth,r).format("YYYY-MM-DD"),onClick:N=>q(k(p.value.prevMonth,r))},[e.createElementVNode("span",null,e.toDisplayString(r),1),o.miniEnglishDate?(e.openBlock(),e.createElementBlock("span",Xe,e.toDisplayString(le(k(p.value.currentMonth,r))),1)):e.createCommentVNode("",!0)],10,Ue))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value.currentMonth.days,(r,f)=>(e.openBlock(),e.createElementBlock("div",{key:f,class:e.normalizeClass(["calendar__day",{calendar__selected:yt(k(p.value.currentMonth,r)),calendar__today:mt(k(p.value.currentMonth,r)),calendar__disable_date:H(k(p.value.currentMonth,r)),calendar__saturday:ne(k(p.value.currentMonth,r))&&o.highlightSaturday}]),title:k(p.value.currentMonth,r).format("YYYY-MM-DD"),onClick:N=>q(k(p.value.currentMonth,r))},[e.createElementVNode("span",null,e.toDisplayString(r),1),o.miniEnglishDate?(e.openBlock(),e.createElementBlock("span",qe,e.toDisplayString(le(k(p.value.currentMonth,r))),1)):e.createCommentVNode("",!0)],10,je))),128)),p.value.remainingDays>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(p.value.nextMonth.days,(r,f)=>(e.openBlock(),e.createElementBlock("div",{key:f,class:e.normalizeClass(["calendar__day calendar__not_current_month",{calendar__disable_date:H(k(p.value.nextMonth,r)),calendar__not_current_month_saturday:ne(k(p.value.nextMonth,r))&&o.highlightSaturday}]),title:k(p.value.nextMonth,r).format("YYYY-MM-DD"),onClick:N=>q(k(p.value.nextMonth,r))},[e.createElementVNode("span",null,e.toDisplayString(r),1),o.miniEnglishDate?(e.openBlock(),e.createElementBlock("span",Je,e.toDisplayString(le(k(p.value.currentMonth,r))),1)):e.createCommentVNode("",!0)],10,Ge))),128)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),T.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"calendar__months",onClick:l[9]||(l[9]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Z),(r,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["calendar_month",{calendar__selected:ct(f)}]),onClick:N=>wt(f)},e.toDisplayString(r),11,Ze))),256))])):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("div",{key:2,class:"calendar__years",onClick:l[10]||(l[10]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(X.value,r=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["calendar__year",{calendar__selected:ut(r)}]),onClick:f=>gt(r)},e.toDisplayString(r),11,et))),256))])):e.createCommentVNode("",!0)])])],14,Fe)):e.createCommentVNode("",!0)]),_:1})]))],42,xe))}}),[["__scopeId","data-v-920abd7e"]]);b.NepaliDatePicker=fe,b.default=fe,Object.defineProperties(b,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));