UNPKG

nepali-datepicker-vue

Version:

A Vue 3 Nepali Datepicker with TypeScript Support

695 lines (694 loc) 41.2 kB
import { defineComponent as Ve, ref as p, onMounted as Ce, watch as J, computed as X, onUnmounted as be, createElementBlock as h, openBlock as m, normalizeClass as S, createElementVNode as v, createVNode as xe, withDirectives as Ie, createCommentVNode as T, withKeys as Oe, vModelText as Qe, withModifiers as $, Transition as $e, withCtx as He, toDisplayString as Y, Fragment as H, renderList as F, unref as se } from "vue"; var o = [{ 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 }], le = 0; o.forEach((r) => { r.totalDays = r.days.reduce((e, a) => e + a, 0), le += r.totalDays, r.daysTillNow = le; }); var q = new Date(1919, 3, 13).getTime(), oe = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], ee = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], ye = ["आइतबार", "सोमबार", "मंगलबार", "बुधबार", "बिहिबार", "शुक्रबार", "शनिबार"], ie = ["आइत", "सोम", "मंगल", "बुध", "बिहि", "शुक्र", "शनि"], ae = ["Baisakh", "Jestha", "Asar", "Shrawan", "Bhadra", "Aswin", "Kartik", "Mangsir", "Poush", "Magh", "Falgun", "Chaitra"], de = ["Bai", "Jes", "Asa", "Shr", "Bha", "Asw", "Kar", "Man", "Pou", "Mag", "Fal", "Cha"], ue = ["बैशाख", "जेठ", "असार", "श्रावण", "भाद्र", "आश्विन", "कार्तिक", "मंसिर", "पौष", "माघ", "फाल्गुण", "चैत्र"], ce = ["बै", "जे", "अस", "श्र", "भा", "आ", "का", "मं", "पौ", "मा", "फा", "चै"], Fe = ["०", "१", "२", "३", "४", "५", "६", "७", "८", "९"]; function j(r) { return r < 10 ? `0${r}` : `${r}`; } function A(r) { let e = ""; for (let a = 0; a < r.length; a += 1) e += Fe[r.charCodeAt(a) - 48]; return e; } function Pe(r) { return (e) => r <= 2 ? String(e.getYear()).substring(2) : r === 3 ? String(e.getYear()).substring(1) : String(e.getYear()); } function Ae(r) { return (e) => A(r <= 2 ? String(e.getYear()).substring(2) : r === 3 ? String(e.getYear()).substring(1) : String(e.getYear())); } function Be(r) { return (e) => r === 1 ? String(e.getMonth() + 1) : r === 2 ? j(e.getMonth() + 1) : r === 3 ? de[e.getMonth()] : ae[e.getMonth()]; } function Le(r) { return (e) => r === 1 ? A(String(e.getMonth() + 1)) : r === 2 ? A(j(e.getMonth() + 1)) : r === 3 ? ce[e.getMonth()] : ue[e.getMonth()]; } function Re(r) { return (e) => r === 1 ? String(e.getDate()) : r === 2 ? j(e.getDate()) : r === 3 ? ee[e.getDay()] : oe[e.getDay()]; } function We(r) { return (e) => r === 1 ? A(String(e.getDate())) : r === 2 ? A(j(e.getDate())) : r === 3 ? ie[e.getDay()] : ye[e.getDay()]; } function re(r) { return () => r; } var Z = { Y: Pe, y: Ae, M: Be, m: Le, D: Re, d: We }; function Ke(r) { return r in Z; } function qe(r) { let e = !1, a = "", n = "", s = 0; const i = []; for (let u = 0; u < r.length; u += 1) { const w = r[u]; w !== n ? (n !== "" && (i.push(Z[n](s)), n = "", s = 0), w !== '"' ? !Ke(w) || e ? a += w : (a && (i.push(re(a)), a = ""), n = w, s = 1) : e = !e) : s += 1; } return a ? i.push(re(a)) : n && i.push(Z[n](s)), i; } function ze(r, e) { return qe(e).map((a) => a(r)).join(""); } function ne(r) { const e = r.split(/[-./]/, 3), [a, n = 1, s = 1] = e.map((u) => { const w = parseInt(u, 10); if (Number.isNaN(w)) throw new Error("Invalid date"); return w; }); if (a < o[0].year || a >= o[0].year + o.length) throw new Error(`Nepal year out of range. Supported range: ${o[0].year}-${o[0].year + o.length - 1}`); if (n < 1 || n > 12) throw new Error("Invalid nepali month must be between 1 - 12"); const i = o[a - o[0].year].days[n - 1]; if (s < 1 || s > i) throw new Error(`Invalid nepali date must be between 1 - ${i} in ${a} ${n}`); return [a, n - 1, s]; } var c = class d { constructor() { if (arguments.length === 0) this.setEnglishDate(/* @__PURE__ */ 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 d)) 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(...ne(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 a = Math.floor((this.timestamp.getTime() - q) / 864e5), n = Math.floor(a / 366); for (; a >= o[n].daysTillNow; ) n += 1; a -= o[n - 1] ? o[n - 1].daysTillNow : 0; const s = o[n]; for (this.year = s.year, this.month = 0; a >= s.days[this.month]; ) this.month += 1, a -= s.days[this.month - 1]; this.day = a + 1; } getEnglishDate() { return this.timestamp; } parse(e) { this.set(...ne(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, a, n) { const s = e + Math.floor(a / 12) - o[0].year, i = o[s]; let u = i.daysTillNow - i.totalDays; const w = a % 12, x = w < 0 ? 12 + w : w; for (let D = 0; D < x; D += 1) u += i.days[D]; u += n - 1, this.setEnglishDate(new Date(q + 864e5 * u)); } format(e) { return ze(this, e); } toString() { return `${this.year}/${this.month + 1}/${this.day}`; } addDays(e) { const a = new Date(this.timestamp.getTime() + 864e5 * e); return new d(a); } addMonths(e) { let a = this.year, n = this.month + e; a += Math.floor(n / 12), n %= 12, n < 0 && (n += 12, a -= 1); const s = a - o[0].year; if (s < 0 || s >= o.length) throw new Error("Resulting date is out of supported range"); const i = o[s].days[n], u = Math.min(this.day, i); return new d(a, n, u); } addYears(e) { const a = this.year + e; if (a < o[0].year || a >= o[0].year + o.length) throw new Error("Resulting date is out of supported range"); const n = a - o[0].year; if (this.month === 11 && this.day === 29) { const s = o[n].days[11]; if (s < 29) return new d(a, 11, s); } return new d(a, this.month, this.day); } static minimum() { return new Date(q); } static maximum() { return new Date(q + 864e5 * o[o.length - 1].daysTillNow); } daysInMonth() { const e = this.year - o[0].year; return o[e].days[this.month]; } isLeapYear() { const e = this.year - o[0].year; return o[e].totalDays === 366; } getWeeksInMonth() { const e = new d(this.year, this.month, 1).getDay(), a = this.daysInMonth(); return Math.ceil((e + a) / 7); } diff(e, a) { switch (a) { 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 d(e); } endOfDay() { const e = new Date(this.timestamp); return e.setHours(23, 59, 59, 999), new d(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 a = (this.getDay() - e + 7) % 7; return this.clone().startOfDay().addDays(-a); } endOfWeek() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0; return this.startOfWeek(e).addDays(6).endOfDay(); } startOfMonth() { return new d(this.year, this.month, 1); } endOfMonth() { const e = this.daysInMonth(); return new d(this.year, this.month, e).endOfDay(); } startOfYear() { return new d(this.year, 0, 1); } endOfYear() { const e = this.year - o[0].year, a = o[e].days[11]; return new d(this.year, 11, a).endOfDay(); } static getMonthName(e) { let a = arguments.length > 1 && arguments[1] !== void 0 && arguments[1], n = 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 = n ? a ? ce[e] : ue[e] : a ? de[e] : ae[e], s; } static getDayName(e) { let a = arguments.length > 1 && arguments[1] !== void 0 && arguments[1], n = 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 = n ? a ? ie[e] : ye[e] : a ? ee[e] : oe[e], s; } static isValid(e, a, n) { try { if (e < o[0].year || e >= o[0].year + o.length || a < 0 || a > 11) return !1; const s = e - o[0].year, i = o[s].days[a]; return !(n < 1 || n > i); } catch { return !1; } } isValid() { return d.isValid(this.year, this.month, this.day); } static getCalendarDays(e, a) { if (!d.isValid(e, a, 1)) throw new Error("Invalid year or month"); const n = { year: 0, month: 0, days: [] }, s = { year: 0, month: 0, days: [] }, i = { year: 0, month: 0, days: [] }, u = e - o[0].year, w = new d(e, a, 1).getDay(), x = o[u].days[a]; s.year = e, s.month = a; let D = a - 1, g = e, b = a + 1, V = e; if (D < 0 && (D = 11, g--), g >= o[0].year && (n.year = g, n.month = D), g >= o[0].year && w > 0) { const f = g - o[0].year, C = o[f].days[D]; for (let k = 0; k < w; k++) n.days.push(C - w + k + 1); } for (let f = 1; f <= x; f++) s.days.push(f); b > 11 && (b = 0, V++), V < o[0].year + o.length && (i.year = V, i.month = b); const _ = 42 - w - s.days.length; if (V < o[0].year + o.length && _ > 0) for (let f = 1; f <= _; f++) i.days.push(f); return { prevRemainingDays: w, prevMonth: n, currentMonth: s, nextMonth: i, remainingDays: _ }; } clone() { return new d(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, a) { switch (a) { 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, a) { if (e < 1 || e > 4 || !Number.isInteger(e)) throw new Error("Quarter must be an integer between 1 and 4"); const n = a ?? new d().getYear(), s = 3 * (e - 1); return { start: new d(n, s, 1), end: new d(n, s + 2, 1).endOfMonth() }; } getCurrentQuarter() { return Math.floor(this.month / 3) + 1; } static getQuarters(e) { const a = e ?? new d().getYear(); return { Q1: d.getQuarter(1, a), Q2: d.getQuarter(2, a), Q3: d.getQuarter(3, a), Q4: d.getQuarter(4, a) }; } static getCurrentFiscalYear() { const e = new d(), a = e.getYear(); return e.getMonth() < 3 ? a - 1 : a; } static getFiscalYearQuarter(e, a) { if (e < 1 || e > 4 || !Number.isInteger(e)) throw new Error("Quarter must be an integer between 1 and 4"); const n = a ?? d.getCurrentFiscalYear(); let s = n, i = 3 * (e - 1) + 3; e === 4 && (s = n + 1, i = 0), i > 11 && (s++, i -= 12); let u = i + 2, w = s; return u > 11 && (w++, u -= 12), { start: new d(s, i, 1), end: new d(w, u, 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(), a = d.getCurrentFiscalYear(); return d.getFiscalYearQuarter(e, a); } static getFiscalYearQuarters(e) { const a = e ?? d.getCurrentFiscalYear(); return { Q1: d.getFiscalYearQuarter(1, a), Q2: d.getFiscalYearQuarter(2, a), Q3: d.getFiscalYearQuarter(3, a), Q4: d.getFiscalYearQuarter(4, a) }; } }; const je = ["placeholder", "id"], Ue = { key: 0, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024", width: "1em", height: "1em" }, Ge = ["id"], Je = { class: "calendar__body" }, Xe = { class: "calendar__head" }, Ze = { class: "calendar__header_label" }, ea = { key: 0 }, aa = { key: 2 }, ta = { key: 4 }, sa = { class: "calendar__container" }, la = { key: 0 }, ra = { class: "calendar__weeks" }, na = { class: "calendar__days" }, oa = ["title", "onClick"], ya = ["title", "onClick"], ia = ["title", "onClick"], da = ["onClick"], ua = ["onClick"], z = 10, ca = /* @__PURE__ */ Ve({ __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(r, { emit: e }) { const a = r, n = e, s = p( a.modelValue ? new c(a.modelValue) : new c() ), i = p(!1), u = p(a.modelValue), w = p( a.modelValue ? new c(a.modelValue).getYear() : new c().getYear() ), x = p( a.modelValue ? new c(a.modelValue).getMonth() : new c().getMonth() ), D = p(!1), g = p(!1), b = p(o[0].year), V = p(o.length + o[0].year - 1), _ = p(0), f = p(), C = p(!1), k = p(), I = p(!1); Ce(() => { U(); }), J( () => a.modelValue, () => { u.value = a.modelValue, w.value = a.modelValue ? new c(a.modelValue).getYear() : new c().getYear(), x.value = a.modelValue ? new c(a.modelValue).getMonth() : new c().getMonth(), s.value = a.modelValue ? new c(a.modelValue) : new c(); } ), J( () => a.minDate, () => { U(); } ), J( () => a.maxDate, () => { U(); } ); const U = () => { if (a.minDate) try { f.value = new c(a.minDate), C.value = !0; } catch (l) { f.value = null, console.error("Invalid Minimum Date", l), C.value = !1; } if (a.maxDate) try { k.value = new c(a.maxDate), I.value = !0; } catch (l) { console.error("Invalid Maximum Date", l), I.value = !1; } I.value && C.value && (f.value.isAfter(k.value) ? (console.error("Minimum Date is Greater than Maximum Date"), I.value = !1, C.value = !1) : f.value.isEqual(k.value) && (console.error("Minimum Date is Equal to Maximum Date"), I.value = !1, C.value = !1)); }, N = X(() => c.getCalendarDays(s.value.year, s.value.month)), E = (l, t) => new c(l.year, l.month, t), he = () => { if (g.value = !g.value, D.value = !1, g.value) { const l = s.value.year, t = o.findIndex( (y) => y.year === l ); _.value = Math.floor(t / z); } }, me = () => { const l = new c(); O(l) && (C.value ? s.value = new c(f.value.year, f.value.month, f.value.day) : I.value && (s.value = new c(k.value.year, k.value.month, k.value.day))); }, B = (l, t) => { l ? i.value = !0 : t ? i.value = !1 : i.value = !i.value, i.value ? (me(), document.addEventListener("click", K)) : (document.removeEventListener("click", K), te()); }, we = () => { D.value = !D.value, g.value = !1; }, ve = () => { let l = s.value.month + 1, t = s.value.year; l > 11 && (t++, l = 0), t + 1 < b.value || t > V.value || (R(l, t), s.value = new c(t, l, 1)); }, ge = () => { if (g.value) _.value < Ye.value - 1 && _.value++; else { let l = s.value.month, t = s.value.year + 1; t < b.value || t > V.value || (R(l, t), s.value = new c(t, l, 1)); } }, De = () => { let l = s.value.month - 1, t = s.value.year; l < 0 && (t--, l = 11), t < b.value || t > V.value || (R(l, t), s.value = new c(t, l, 1)); }, fe = () => { if (g.value) _.value > 0 && _.value--; else { let l = s.value.month, t = s.value.year - 1; t < b.value || t > V.value || (R(l, t), s.value = new c(t, l, 1)); } }, Ne = (l) => a.modelValue ? new c(a.modelValue).getTime() === l.getTime() : !1, Te = (l) => s.value.month == l, pe = (l) => s.value.year == l, O = (l) => !!(C.value && l.isBefore(f.value) || I.value && l.isAfter(k.value)), Me = (l) => { const t = new c(); return l.day === t.day && l.year === t.year && l.month === t.month; }, L = X(() => { const l = o.map((y) => y.year), t = _.value * z; return l.slice(t, t + z); }), Ye = X(() => Math.ceil(o.length / z)), G = (l) => { let t = ""; const y = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", M = y.length; let Q = 0; for (; Q < l; ) t += y.charAt(Math.floor(Math.random() * M)), Q += 1; return t; }, P = G(3) + G(3) + G(3), R = (l, t) => { x.value = l, w.value = t; }, ke = (l) => { x.value = l, s.value.setMonth(l), D.value = !1; }, Ee = (l) => { w.value = l, s.value.setYear(l), g.value = !1, a.monthSelect && (D.value = !0); }, W = (l) => { O(l) || (s.value = l, u.value = s.value.format("YYYY-MM-DD"), n("update:modelValue", u.value), n("onSelect", u.value), B()); }, _e = () => { /^\d{4}-\d{2}-\d{2}$/.test(u.value) || (u.value = a.modelValue); try { const l = new c(u.value); if (O(l)) { console.warn("Entered date is outside allowed range"), u.value = a.modelValue; return; } W(l); } catch { u.value = a.modelValue; } }, K = (l) => { const t = document.getElementById("nepali-calendar-" + P), y = document.getElementById("nepali-date-input-" + P); t && !t.contains(l.target) && y && !y.contains(l.target) && (i.value = !1, te(), document.removeEventListener("click", K)); }, te = () => { D.value = !1, g.value = !1, s.value = a.modelValue ? new c(a.modelValue) : new c(); }, Se = () => { D.value = !1, g.value = !1, s.value = new c(), n("update:modelValue", ""), n("onSelect", ""), B(!1, !0); }; return be(() => { document.removeEventListener("click", K); }), (l, t) => (m(), h("div", { class: S(["nepali-datepicker", a.class]), key: P }, [ v("div", { class: S(["calendar-input-div", r.modelValue ? "calendar-input-contain-value" : ""]) }, [ Ie(v("input", { type: "text", class: S(["calendar-input", a.inputClass]), onClick: t[0] || (t[0] = (y) => B(!0)), "onUpdate:modelValue": t[1] || (t[1] = (y) => u.value = y), placeholder: r.placeholder, "aria-haspopup": "true", id: "nepali-date-input-" + P, onKeyup: t[2] || (t[2] = Oe((y) => _e(), ["enter"])) }, null, 42, je), [ [Qe, u.value] ]), v("div", { class: "calendar-input-icon calender-icon", onClick: t[3] || (t[3] = $((y) => B(!0), ["stop"])) }, [ i.value && r.modelValue ? T("", !0) : (m(), h("svg", Ue, [...t[11] || (t[11] = [ v("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) ])])) ]), r.modelValue ? (m(), h("div", { key: 0, class: S(["calendar-input-icon", i.value ? "" : "calendar-clear-input"]), onClick: t[4] || (t[4] = $((y) => Se(), ["stop"])) }, [...t[12] || (t[12] = [ v("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, [ v("path", { id: "Vector", d: "M18 18L12 12M12 12L6 6M12 12L18 6M12 12L6 18", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }) ], -1) ])], 2)) : T("", !0) ], 2), xe($e, { name: "calendar-animation" }, { default: He(() => [ i.value ? (m(), h("div", { key: 0, class: S(["calendar", { show: i.value }]), id: "nepali-calendar-" + P, style: { "user-select": "none" } }, [ v("div", Je, [ v("div", Xe, [ v("div", null, [ v("button", { class: "calendar__toggle_button", onClick: t[5] || (t[5] = (y) => fe()) }, [...t[13] || (t[13] = [ v("i", { class: "calendar-icon-double-left" }, null, -1) ])]), !D.value && !g.value ? (m(), h("button", { key: 0, class: "calendar__toggle_button", onClick: t[6] || (t[6] = (y) => De()) }, [...t[14] || (t[14] = [ v("i", { class: "calendar-icon-left" }, null, -1) ])])) : T("", !0) ]), v("div", Ze, [ r.monthSelect ? T("", !0) : (m(), h("a", ea, Y(s.value.format("MMMM")), 1)), !D.value && !g.value && r.monthSelect ? (m(), h("a", { key: 1, class: "calendar__header_selector", onClick: $(we, ["stop"]) }, Y(s.value.format("MMMM")), 1)) : T("", !0), r.yearSelect ? T("", !0) : (m(), h("a", aa, Y(s.value.format("YYYY")), 1)), !g.value && r.yearSelect ? (m(), h("a", { key: 3, class: "calendar__header_selector", onClick: $(he, ["stop"]) }, Y(s.value.format("YYYY")), 1)) : T("", !0), g.value && r.yearSelect ? (m(), h("a", ta, Y(L.value[0]) + " ~ " + Y(L.value[L.value.length - 1]), 1)) : T("", !0) ]), v("div", null, [ !D.value && !g.value ? (m(), h("button", { key: 0, class: "calendar__toggle_button", onClick: t[7] || (t[7] = (y) => ve()) }, [...t[15] || (t[15] = [ v("i", { class: "calendar-icon-right" }, null, -1) ])])) : T("", !0), v("button", { class: "calendar__toggle_button", onClick: t[8] || (t[8] = (y) => ge()) }, [...t[16] || (t[16] = [ v("i", { class: "calendar-icon-double-right" }, null, -1) ])]) ]) ]), v("div", sa, [ !D.value && !g.value ? (m(), h("div", la, [ v("div", ra, [ (m(!0), h(H, null, F(se(ee), (y, M) => (m(), h("div", { key: M, class: "calendar__weekday" }, Y(y), 1))), 128)) ]), v("div", na, [ N.value.prevRemainingDays > 0 ? (m(!0), h(H, { key: 0 }, F(N.value.prevMonth.days, (y, M) => (m(), h("div", { key: M, class: S(["calendar__day calendar__not_current_month", { calendar__disable_date: O( E(N.value.prevMonth, y) ) }]), title: E(N.value.prevMonth, y).format( "YYYY-MM-DD" ), onClick: (Q) => W(E(N.value.prevMonth, y)) }, [ v("span", null, Y(y), 1) ], 10, oa))), 128)) : T("", !0), (m(!0), h(H, null, F(N.value.currentMonth.days, (y, M) => (m(), h("div", { key: M, class: S(["calendar__day", { calendar__selected: Ne( E(N.value.currentMonth, y) ), calendar__today: Me( E(N.value.currentMonth, y) ), calendar__disable_date: O( E(N.value.currentMonth, y) ) }]), title: E(N.value.currentMonth, y).format( "YYYY-MM-DD" ), onClick: (Q) => W(E(N.value.currentMonth, y)) }, [ v("span", null, Y(y), 1) ], 10, ya))), 128)), N.value.remainingDays > 0 ? (m(!0), h(H, { key: 1 }, F(N.value.nextMonth.days, (y, M) => (m(), h("div", { key: M, class: S(["calendar__day calendar__not_current_month", { calendar__disable_date: O( E(N.value.nextMonth, y) ) }]), title: E(N.value.nextMonth, y).format( "YYYY-MM-DD" ), onClick: (Q) => W(E(N.value.nextMonth, y)) }, [ v("span", null, Y(y), 1) ], 10, ia))), 128)) : T("", !0) ]) ])) : T("", !0), D.value ? (m(), h("div", { key: 1, class: "calendar__months", onClick: t[9] || (t[9] = $(() => { }, ["stop"])) }, [ (m(!0), h(H, null, F(se(ae), (y, M) => (m(), h("div", { class: S(["calendar_month", { calendar__selected: Te(M) }]), onClick: (Q) => ke(M) }, Y(y), 11, da))), 256)) ])) : T("", !0), g.value ? (m(), h("div", { key: 2, class: "calendar__years", onClick: t[10] || (t[10] = $(() => { }, ["stop"])) }, [ (m(!0), h(H, null, F(L.value, (y) => (m(), h("div", { class: S(["calendar__year", { calendar__selected: pe(y) }]), onClick: (M) => Ee(y) }, Y(y), 11, ua))), 256)) ])) : T("", !0) ]) ]) ], 10, Ge)) : T("", !0) ]), _: 1 }) ], 2)); } }), ha = (r, e) => { const a = r.__vccOpts || r; for (const [n, s] of e) a[n] = s; return a; }, wa = /* @__PURE__ */ ha(ca, [["__scopeId", "data-v-d902ca7c"]]); export { wa as NepaliDatePicker };