@f1softinternational/f1-nepali-date-picker 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/components/nepali-date-picker/nepali-date-picker.component.mjs +30 -3
- package/esm2022/lib/utils/bs-calendar-data.mjs +150 -15
- package/fesm2022/f1softinternational-f1-nepali-date-picker.mjs +177 -16
- package/fesm2022/f1softinternational-f1-nepali-date-picker.mjs.map +1 -1
- package/lib/components/nepali-date-picker/nepali-date-picker.component.d.ts +11 -2
- package/lib/utils/bs-calendar-data.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"f1softinternational-f1-nepali-date-picker.mjs","sources":["../../../projects/f1-nepali-date-picker/src/lib/utils/bs-calendar-data.ts","../../../projects/f1-nepali-date-picker/src/lib/models/nepali-date.model.ts","../../../projects/f1-nepali-date-picker/src/lib/services/date-converter.service.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.html","../../../projects/f1-nepali-date-picker/src/lib/f1-nepali-date-picker.module.ts","../../../projects/f1-nepali-date-picker/src/public-api.ts","../../../projects/f1-nepali-date-picker/src/f1softinternational-f1-nepali-date-picker.ts"],"sourcesContent":["/**\n * Bikram Sambat Calendar Data\n * Contains month days mapping for each BS year and localization strings\n */\n\n/**\n * BS Year to Month Days Mapping\n * Each entry: [year]: [days in each month from Baisakh to Chaitra]\n * Data range: 2000 BS to 2090 BS\n */\nexport const BS_CALENDAR_DATA: { [year: number]: number[] } = {\n 2000: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2001: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2002: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2003: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2004: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2005: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2006: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2007: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2008: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2009: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2010: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2011: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2012: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2013: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2014: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2015: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2016: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2017: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2018: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2019: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2020: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2021: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2022: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2023: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2024: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2025: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2026: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2027: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2028: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2029: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2030: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2031: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2032: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2033: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2034: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2035: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2036: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2037: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2038: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2039: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2040: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2041: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2042: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2043: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2044: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2045: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2046: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2047: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2048: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2049: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2050: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2051: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2052: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2053: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2054: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2055: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2056: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2057: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2058: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2059: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2060: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2061: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2062: [30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 2063: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2064: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2065: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2066: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2067: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2068: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2069: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2070: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2071: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2072: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2073: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2074: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2075: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2076: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2077: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2078: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2079: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2080: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2081: [31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2082: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2083: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2084: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2085: [31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2086: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2087: [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2088: [30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2089: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2090: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n};\n\n/**\n * Nepali month names\n */\nexport const BS_MONTHS_NP: string[] = [\n 'बैशाख',\n 'जेठ',\n 'असार',\n 'श्रावण',\n 'भदौ',\n 'आश्विन',\n 'कार्तिक',\n 'मंसिर',\n 'पौष',\n 'माघ',\n 'फाल्गुन',\n 'चैत्र',\n];\n\n/**\n * English month names (Romanized)\n */\nexport const BS_MONTHS_EN: string[] = [\n 'Baisakh',\n 'Jestha',\n 'Ashar',\n 'Shrawan',\n 'Bhadra',\n 'Ashwin',\n 'Kartik',\n 'Mangsir',\n 'Poush',\n 'Magh',\n 'Falgun',\n 'Chaitra',\n];\n\n/**\n * Nepali weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_NP: string[] = ['आइत', 'सोम', 'मंगल', 'बुध', 'बिही', 'शुक्र', 'शनि'];\n\n/**\n * English weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_EN: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/**\n * Nepali numerals mapping\n */\nexport const NEPALI_DIGITS: string[] = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];\n\n/**\n * Reference date for conversion calculations\n * BS: 2000-01-01 corresponds to AD: 1943-04-14\n */\nexport const BS_EPOCH = {\n year: 2000,\n month: 1,\n day: 1,\n};\n\nexport const AD_EPOCH = new Date(1943, 3, 14); // April 14, 1943\n\n/**\n * Get minimum supported BS year\n */\nexport const BS_MIN_YEAR = Math.min(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Get maximum supported BS year\n */\nexport const BS_MAX_YEAR = Math.max(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Convert number to Nepali digits\n */\nexport function toNepaliDigits(num: number | string): string {\n return String(num)\n .split('')\n .map((char) => {\n const digit = parseInt(char, 10);\n return isNaN(digit) ? char : NEPALI_DIGITS[digit];\n })\n .join('');\n}\n\n/**\n * Get total days in a BS year\n */\nexport function getTotalDaysInBSYear(year: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n return monthDays.reduce((sum, days) => sum + days, 0);\n}\n\n/**\n * Get days in a specific BS month\n */\nexport function getDaysInBSMonth(year: number, month: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n if (month < 1 || month > 12) {\n throw new Error(`Month ${month} is invalid. Must be between 1 and 12.`);\n }\n return monthDays[month - 1];\n}\n","import {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n AD_EPOCH,\n BS_EPOCH,\n getDaysInBSMonth,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * NepaliDate - Represents a date in the Bikram Sambat (BS) calendar\n */\nexport class NepaliDate {\n private _year: number;\n private _month: number;\n private _day: number;\n\n constructor(year: number, month: number, day: number) {\n this._year = year;\n this._month = month;\n this._day = day;\n }\n\n // Getters\n get year(): number {\n return this._year;\n }\n\n get month(): number {\n return this._month;\n }\n\n get day(): number {\n return this._day;\n }\n\n /**\n * Create NepaliDate from current date\n */\n static today(): NepaliDate {\n return NepaliDate.fromAD(new Date());\n }\n\n /**\n * Create NepaliDate from AD Date\n */\n static fromAD(adDate: Date): NepaliDate {\n // Calculate days from epoch\n const epochTime = AD_EPOCH.getTime();\n const targetTime = new Date(adDate.getFullYear(), adDate.getMonth(), adDate.getDate()).getTime();\n let daysDiff = Math.floor((targetTime - epochTime) / (1000 * 60 * 60 * 24));\n\n if (daysDiff < 0) {\n throw new Error('Date is before supported range');\n }\n\n let bsYear = BS_EPOCH.year;\n let bsMonth = BS_EPOCH.month;\n let bsDay = BS_EPOCH.day;\n\n // Add days\n while (daysDiff > 0) {\n const daysInMonth = getDaysInBSMonth(bsYear, bsMonth);\n const daysRemainingInMonth = daysInMonth - bsDay;\n\n if (daysDiff <= daysRemainingInMonth) {\n bsDay += daysDiff;\n daysDiff = 0;\n } else {\n daysDiff -= daysRemainingInMonth + 1;\n bsMonth++;\n bsDay = 1;\n\n if (bsMonth > 12) {\n bsMonth = 1;\n bsYear++;\n if (bsYear > BS_MAX_YEAR) {\n throw new Error(`Date exceeds supported range (max: ${BS_MAX_YEAR} BS)`);\n }\n }\n }\n }\n\n return new NepaliDate(bsYear, bsMonth, bsDay);\n }\n\n /**\n * Convert to AD Date\n */\n toAD(): Date {\n if (!this.isValid()) {\n throw new Error('Invalid NepaliDate');\n }\n\n let totalDays = 0;\n\n // Add days for complete years\n for (let year = BS_EPOCH.year; year < this._year; year++) {\n const yearData = BS_CALENDAR_DATA[year];\n if (yearData) {\n totalDays += yearData.reduce((sum, days) => sum + days, 0);\n }\n }\n\n // Add days for complete months in current year\n for (let month = 1; month < this._month; month++) {\n totalDays += getDaysInBSMonth(this._year, month);\n }\n\n // Add remaining days\n totalDays += this._day - 1;\n\n // Calculate AD date from epoch\n const adDate = new Date(AD_EPOCH);\n adDate.setDate(adDate.getDate() + totalDays);\n\n return adDate;\n }\n\n /**\n * Check if the date is valid\n */\n isValid(): boolean {\n // Check year range\n if (this._year < BS_MIN_YEAR || this._year > BS_MAX_YEAR) {\n return false;\n }\n\n // Check month range\n if (this._month < 1 || this._month > 12) {\n return false;\n }\n\n // Check day range\n const daysInMonth = getDaysInBSMonth(this._year, this._month);\n if (this._day < 1 || this._day > daysInMonth) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Get the day of week (0 = Sunday, 6 = Saturday)\n */\n getDay(): number {\n return this.toAD().getDay();\n }\n\n /**\n * Get month name in specified language\n */\n getMonthName(lang: 'en' | 'np' = 'en'): string {\n return lang === 'np' ? BS_MONTHS_NP[this._month - 1] : BS_MONTHS_EN[this._month - 1];\n }\n\n /**\n * Format date according to pattern\n * Patterns:\n * YYYY - 4-digit year\n * YY - 2-digit year\n * MM - 2-digit month\n * M - month without leading zero\n * DD - 2-digit day\n * D - day without leading zero\n * MMMM - full month name (English)\n * mmmm - full month name (Nepali)\n */\n format(pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n let result = pattern;\n\n // Replace patterns (order matters - longer patterns first)\n result = result.replace(/YYYY/g, String(this._year).padStart(4, '0'));\n result = result.replace(/YY/g, String(this._year).slice(-2));\n result = result.replace(/MMMM/g, BS_MONTHS_EN[this._month - 1]);\n result = result.replace(/mmmm/g, BS_MONTHS_NP[this._month - 1]);\n result = result.replace(/MM/g, String(this._month).padStart(2, '0'));\n result = result.replace(/M/g, String(this._month));\n result = result.replace(/DD/g, String(this._day).padStart(2, '0'));\n result = result.replace(/D/g, String(this._day));\n\n if (useNepaliDigits) {\n result = toNepaliDigits(result);\n }\n\n return result;\n }\n\n /**\n * Create a clone of this date\n */\n clone(): NepaliDate {\n return new NepaliDate(this._year, this._month, this._day);\n }\n\n /**\n * Compare with another NepaliDate\n * Returns: -1 if this < other, 0 if equal, 1 if this > other\n */\n compareTo(other: NepaliDate): number {\n if (this._year !== other._year) {\n return this._year < other._year ? -1 : 1;\n }\n if (this._month !== other._month) {\n return this._month < other._month ? -1 : 1;\n }\n if (this._day !== other._day) {\n return this._day < other._day ? -1 : 1;\n }\n return 0;\n }\n\n /**\n * Check if this date is before another\n */\n isBefore(other: NepaliDate): boolean {\n return this.compareTo(other) < 0;\n }\n\n /**\n * Check if this date is after another\n */\n isAfter(other: NepaliDate): boolean {\n return this.compareTo(other) > 0;\n }\n\n /**\n * Check if this date equals another\n */\n equals(other: NepaliDate): boolean {\n return this.compareTo(other) === 0;\n }\n\n /**\n * Add days to date (returns new NepaliDate)\n */\n addDays(days: number): NepaliDate {\n const adDate = this.toAD();\n adDate.setDate(adDate.getDate() + days);\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Add months to date (returns new NepaliDate)\n */\n addMonths(months: number): NepaliDate {\n let newYear = this._year;\n let newMonth = this._month + months;\n\n while (newMonth > 12) {\n newMonth -= 12;\n newYear++;\n }\n while (newMonth < 1) {\n newMonth += 12;\n newYear--;\n }\n\n // Adjust day if it exceeds days in new month\n const daysInNewMonth = getDaysInBSMonth(newYear, newMonth);\n const newDay = Math.min(this._day, daysInNewMonth);\n\n return new NepaliDate(newYear, newMonth, newDay);\n }\n\n /**\n * Add years to date (returns new NepaliDate)\n */\n addYears(years: number): NepaliDate {\n const newYear = this._year + years;\n const daysInNewMonth = getDaysInBSMonth(newYear, this._month);\n const newDay = Math.min(this._day, daysInNewMonth);\n return new NepaliDate(newYear, this._month, newDay);\n }\n\n /**\n * Get string representation\n */\n toString(): string {\n return this.format('YYYY-MM-DD');\n }\n\n /**\n * Convert to plain object\n */\n toObject(): { year: number; month: number; day: number } {\n return {\n year: this._year,\n month: this._month,\n day: this._day,\n };\n }\n\n /**\n * Create from plain object\n */\n static fromObject(obj: { year: number; month: number; day: number }): NepaliDate {\n return new NepaliDate(obj.year, obj.month, obj.day);\n }\n\n /**\n * Parse from string (YYYY-MM-DD format)\n */\n static parse(dateString: string): NepaliDate {\n const parts = dateString.split('-').map(Number);\n if (parts.length !== 3 || parts.some(isNaN)) {\n throw new Error('Invalid date format. Expected YYYY-MM-DD');\n }\n return new NepaliDate(parts[0], parts[1], parts[2]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NepaliDate } from '../models/nepali-date.model';\nimport {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_WEEKDAYS_EN,\n BS_WEEKDAYS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n getDaysInBSMonth,\n getTotalDaysInBSYear,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * DateConverterService - Service for BS/AD date conversions and utilities\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DateConverterService {\n /**\n * Convert AD Date to NepaliDate (BS)\n */\n convertToBS(adDate: Date): NepaliDate {\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Convert NepaliDate (BS) to AD Date\n */\n convertToAD(bsDate: NepaliDate): Date {\n return bsDate.toAD();\n }\n\n /**\n * Get today's date in BS\n */\n getTodayBS(): NepaliDate {\n return NepaliDate.today();\n }\n\n /**\n * Get number of days in a BS month\n */\n getDaysInMonth(year: number, month: number): number {\n return getDaysInBSMonth(year, month);\n }\n\n /**\n * Get total days in a BS year\n */\n getDaysInYear(year: number): number {\n return getTotalDaysInBSYear(year);\n }\n\n /**\n * Get month names\n */\n getMonthNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_MONTHS_NP] : [...BS_MONTHS_EN];\n }\n\n /**\n * Get weekday names\n */\n getWeekdayNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_WEEKDAYS_NP] : [...BS_WEEKDAYS_EN];\n }\n\n /**\n * Get minimum supported year\n */\n getMinYear(): number {\n return BS_MIN_YEAR;\n }\n\n /**\n * Get maximum supported year\n */\n getMaxYear(): number {\n return BS_MAX_YEAR;\n }\n\n /**\n * Validate a BS date\n */\n isValidDate(year: number, month: number, day: number): boolean {\n const date = new NepaliDate(year, month, day);\n return date.isValid();\n }\n\n /**\n * Format a NepaliDate\n */\n format(date: NepaliDate, pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n return date.format(pattern, useNepaliDigits);\n }\n\n /**\n * Parse a date string to NepaliDate\n */\n parse(dateString: string): NepaliDate {\n return NepaliDate.parse(dateString);\n }\n\n /**\n * Convert number to Nepali digits\n */\n toNepaliDigits(num: number | string): string {\n return toNepaliDigits(num);\n }\n\n /**\n * Get calendar grid for a month\n * Returns a 2D array representing weeks (rows) and days (columns)\n * Each cell contains the day number or null for empty cells\n */\n getMonthCalendarGrid(year: number, month: number): (number | null)[][] {\n const daysInMonth = this.getDaysInMonth(year, month);\n const firstDayOfMonth = new NepaliDate(year, month, 1);\n const startDayOfWeek = firstDayOfMonth.getDay(); // 0 = Sunday\n\n const grid: (number | null)[][] = [];\n let currentWeek: (number | null)[] = [];\n\n // Fill empty cells before first day\n for (let i = 0; i < startDayOfWeek; i++) {\n currentWeek.push(null);\n }\n\n // Fill days\n for (let day = 1; day <= daysInMonth; day++) {\n currentWeek.push(day);\n\n if (currentWeek.length === 7) {\n grid.push(currentWeek);\n currentWeek = [];\n }\n }\n\n // Fill remaining empty cells in last week\n if (currentWeek.length > 0) {\n while (currentWeek.length < 7) {\n currentWeek.push(null);\n }\n grid.push(currentWeek);\n }\n\n return grid;\n }\n\n /**\n * Get years range for year selector\n */\n getYearRange(startYear?: number, endYear?: number): number[] {\n const start = startYear ?? BS_MIN_YEAR;\n const end = endYear ?? BS_MAX_YEAR;\n const years: number[] = [];\n\n for (let year = start; year <= end; year++) {\n if (BS_CALENDAR_DATA[year]) {\n years.push(year);\n }\n }\n\n return years;\n }\n\n /**\n * Check if a date is within a range\n */\n isDateInRange(date: NepaliDate, minDate?: NepaliDate, maxDate?: NepaliDate): boolean {\n if (minDate && date.isBefore(minDate)) {\n return false;\n }\n if (maxDate && date.isAfter(maxDate)) {\n return false;\n }\n return true;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n OnInit,\n OnDestroy,\n ElementRef,\n HostListener,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NepaliDate } from '../../models/nepali-date.model';\nimport { DateConverterService } from '../../services/date-converter.service';\n\n@Component({\n selector: 'f1-nepali-date-picker',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './nepali-date-picker.component.html',\n styleUrls: ['./nepali-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NepaliDatePickerComponent),\n multi: true,\n },\n ],\n})\nexport class NepaliDatePickerComponent implements OnInit, OnDestroy, ControlValueAccessor {\n /** Minimum selectable date */\n @Input() minDate?: NepaliDate;\n\n /** Maximum selectable date */\n @Input() maxDate?: NepaliDate;\n\n /** Placeholder text */\n @Input() placeholder = 'Select date';\n\n /** Display format for the input */\n @Input() displayFormat = 'YYYY-MM-DD';\n\n /** Theme: 'light' or 'dark' */\n @Input() theme: 'light' | 'dark' = 'light';\n\n /** Language for month/day names */\n @Input() language: 'en' | 'np' = 'en';\n\n /** Show today button */\n @Input() showTodayButton = true;\n\n /** Disabled state */\n @Input() disabled = false;\n\n /** Use Nepali digits in display */\n @Input() useNepaliDigits = false;\n\n /** Event emitted when date changes */\n @Output() dateChange = new EventEmitter<NepaliDate | null>();\n\n // Internal state\n isOpen = false;\n selectedDate: NepaliDate | null = null;\n viewDate: NepaliDate;\n calendarGrid: (number | null)[][] = [];\n monthNames: string[] = [];\n weekdayNames: string[] = [];\n years: number[] = [];\n\n // CVA callbacks\n private onChange: (value: NepaliDate | null) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor(\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n private dateConverter: DateConverterService\n ) {\n this.viewDate = this.dateConverter.getTodayBS();\n }\n\n ngOnInit(): void {\n this.monthNames = this.dateConverter.getMonthNames(this.language);\n this.weekdayNames = this.dateConverter.getWeekdayNames(this.language);\n this.years = this.dateConverter.getYearRange();\n this.updateCalendarGrid();\n }\n\n ngOnDestroy(): void { }\n\n // ControlValueAccessor implementation\n writeValue(value: NepaliDate | null): void {\n this.selectedDate = value;\n if (value) {\n this.viewDate = value.clone();\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: NepaliDate | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n // UI Methods\n toggleCalendar(): void {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.onTouched();\n this.updateCalendarGrid();\n }\n this.cdr.markForCheck();\n }\n\n closeCalendar(): void {\n this.isOpen = false;\n this.cdr.markForCheck();\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeCalendar();\n }\n }\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n this.closeCalendar();\n }\n\n // Navigation\n previousMonth(): void {\n this.viewDate = this.viewDate.addMonths(-1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n nextMonth(): void {\n this.viewDate = this.viewDate.addMonths(1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onYearChange(event: Event): void {\n const year = parseInt((event.target as HTMLSelectElement).value, 10);\n this.viewDate = new NepaliDate(year, this.viewDate.month, 1);\n // Adjust day if needed\n const daysInMonth = this.dateConverter.getDaysInMonth(year, this.viewDate.month);\n if (this.viewDate.day > daysInMonth) {\n this.viewDate = new NepaliDate(year, this.viewDate.month, daysInMonth);\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onMonthChange(event: Event): void {\n const month = parseInt((event.target as HTMLSelectElement).value, 10);\n const daysInMonth = this.dateConverter.getDaysInMonth(this.viewDate.year, month);\n const newDay = Math.min(this.viewDate.day, daysInMonth);\n this.viewDate = new NepaliDate(this.viewDate.year, month, newDay);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n // Date selection\n selectDate(day: number | null): void {\n if (day === null || this.disabled) return;\n\n const newDate = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n\n if (!this.isDateSelectable(day)) return;\n\n this.selectedDate = newDate;\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n\n selectToday(): void {\n const today = this.dateConverter.getTodayBS();\n if (this.dateConverter.isDateInRange(today, this.minDate, this.maxDate)) {\n this.selectedDate = today;\n this.viewDate = today.clone();\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.updateCalendarGrid();\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n }\n\n clearDate(): void {\n this.selectedDate = null;\n this.onChange(null);\n this.dateChange.emit(null);\n this.cdr.markForCheck();\n }\n\n // Helper methods\n private updateCalendarGrid(): void {\n this.calendarGrid = this.dateConverter.getMonthCalendarGrid(this.viewDate.year, this.viewDate.month);\n }\n\n isDateSelectable(day: number): boolean {\n if (day === null) return false;\n const date = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n return this.dateConverter.isDateInRange(date, this.minDate, this.maxDate);\n }\n\n isToday(day: number): boolean {\n if (day === null) return false;\n const today = this.dateConverter.getTodayBS();\n return (\n this.viewDate.year === today.year && this.viewDate.month === today.month && day === today.day\n );\n }\n\n isSelected(day: number): boolean {\n if (day === null || !this.selectedDate) return false;\n return (\n this.viewDate.year === this.selectedDate.year &&\n this.viewDate.month === this.selectedDate.month &&\n day === this.selectedDate.day\n );\n }\n\n get displayValue(): string {\n if (!this.selectedDate) return '';\n return this.selectedDate.format(this.displayFormat, this.useNepaliDigits);\n }\n\n get currentMonthName(): string {\n return this.monthNames[this.viewDate.month - 1];\n }\n\n trackByWeek(index: number): number {\n return index;\n }\n\n trackByDay(index: number): number {\n return index;\n }\n}\n","<div class=\"f1-datepicker\" [class.f1-datepicker--dark]=\"theme === 'dark'\" [class.f1-datepicker--disabled]=\"disabled\">\n <!-- Input Field -->\n <div class=\"f1-datepicker__input-wrapper\" (click)=\"toggleCalendar()\">\n <input\n type=\"text\"\n class=\"f1-datepicker__input\"\n [value]=\"displayValue\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n readonly\n />\n <span class=\"f1-datepicker__icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\n </svg>\n </span>\n <button\n *ngIf=\"selectedDate && !disabled\"\n type=\"button\"\n class=\"f1-datepicker__clear\"\n (click)=\"clearDate(); $event.stopPropagation()\"\n aria-label=\"Clear date\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <!-- Calendar Dropdown -->\n <div class=\"f1-datepicker__dropdown\" *ngIf=\"isOpen\" [@fadeIn]>\n <!-- Header -->\n <div class=\"f1-datepicker__header\">\n <button\n type=\"button\"\n class=\"f1-datepicker__nav-btn\"\n (click)=\"previousMonth()\"\n aria-label=\"Previous month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n </button>\n\n <div class=\"f1-datepicker__selectors\">\n <select\n class=\"f1-datepicker__select\"\n [value]=\"viewDate.month\"\n (change)=\"onMonthChange($event)\"\n >\n <option *ngFor=\"let month of monthNames; let i = index\" [value]=\"i + 1\">\n {{ month }}\n </option>\n </select>\n\n <select\n class=\"f1-datepicker__select\"\n [value]=\"viewDate.year\"\n (change)=\"onYearChange($event)\"\n >\n <option *ngFor=\"let year of years\" [value]=\"year\">\n {{ useNepaliDigits ? (year | number:'1.0-0') : year }}\n </option>\n </select>\n </div>\n\n <button\n type=\"button\"\n class=\"f1-datepicker__nav-btn\"\n (click)=\"nextMonth()\"\n aria-label=\"Next month\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n </button>\n </div>\n\n <!-- Weekday Headers -->\n <div class=\"f1-datepicker__weekdays\">\n <div class=\"f1-datepicker__weekday\" *ngFor=\"let day of weekdayNames\">\n {{ day }}\n </div>\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"f1-datepicker__grid\">\n <div class=\"f1-datepicker__week\" *ngFor=\"let week of calendarGrid; trackBy: trackByWeek\">\n <button\n type=\"button\"\n class=\"f1-datepicker__day\"\n *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.f1-datepicker__day--empty]=\"day === null\"\n [class.f1-datepicker__day--today]=\"day !== null && isToday(day)\"\n [class.f1-datepicker__day--selected]=\"day !== null && isSelected(day)\"\n [class.f1-datepicker__day--disabled]=\"day !== null && !isDateSelectable(day)\"\n [disabled]=\"day === null || !isDateSelectable(day)\"\n (click)=\"selectDate(day)\"\n >\n {{ day !== null ? (useNepaliDigits ? day : day) : '' }}\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"f1-datepicker__footer\" *ngIf=\"showTodayButton\">\n <button\n type=\"button\"\n class=\"f1-datepicker__today-btn\"\n (click)=\"selectToday()\"\n >\n {{ language === 'np' ? 'आज' : 'Today' }}\n </button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { NepaliDatePickerComponent } from './components/nepali-date-picker/nepali-date-picker.component';\n\n@NgModule({\n imports: [\n NepaliDatePickerComponent, // Standalone component, import directly\n ],\n exports: [\n NepaliDatePickerComponent,\n ],\n})\nexport class F1NepaliDatePickerModule { }\n","/*\n * Public API Surface of f1-nepali-date-picker\n */\n\n// Module\nexport * from './lib/f1-nepali-date-picker.module';\n\n// Components\nexport * from './lib/components/nepali-date-picker/nepali-date-picker.component';\n\n// Models\nexport * from './lib/models/nepali-date.model';\n\n// Services\nexport * from './lib/services/date-converter.service';\n\n// Utilities\nexport * from './lib/utils/bs-calendar-data';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DateConverterService"],"mappings":";;;;;;;AAAA;;;AAGG;AAEH;;;;AAIG;AACU,MAAA,gBAAgB,GAAiC;IAC1D,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,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"}
|
|
1
|
+
{"version":3,"file":"f1softinternational-f1-nepali-date-picker.mjs","sources":["../../../projects/f1-nepali-date-picker/src/lib/utils/bs-calendar-data.ts","../../../projects/f1-nepali-date-picker/src/lib/models/nepali-date.model.ts","../../../projects/f1-nepali-date-picker/src/lib/services/date-converter.service.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.html","../../../projects/f1-nepali-date-picker/src/lib/f1-nepali-date-picker.module.ts","../../../projects/f1-nepali-date-picker/src/public-api.ts","../../../projects/f1-nepali-date-picker/src/f1softinternational-f1-nepali-date-picker.ts"],"sourcesContent":["/**\n * Bikram Sambat Calendar Data\n * Contains month days mapping for each BS year and localization strings\n * Extended data sourced from: https://github.com/techgaun/ad-bs-converter\n */\n\n/**\n * BS Year to Month Days Mapping\n * Each entry: [year]: [days in each month from Baisakh to Chaitra]\n * Data range: 1975 BS to 2199 BS\n */\nexport const BS_CALENDAR_DATA: { [year: number]: number[] } = {\n 1975: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1976: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1977: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1978: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1979: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1980: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1981: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1982: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1983: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1984: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1985: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1986: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1987: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1988: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1989: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1990: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1991: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1992: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1993: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1994: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1995: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1996: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1997: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1998: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1999: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2000: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2001: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2002: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2003: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2004: [30, 32, 31, 32, 31, 30, 30, 30, 30, 29, 29, 31],\n 2005: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2006: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2007: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2008: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2009: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2010: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2011: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2012: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2013: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2014: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2015: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2016: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2017: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2018: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2019: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2020: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2021: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2022: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2023: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2024: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2025: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2026: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2027: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2028: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2029: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2030: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2031: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2032: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2033: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2034: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2035: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2036: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2037: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2038: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2039: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2040: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2041: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2042: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2043: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2044: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2045: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2046: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2047: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2048: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2049: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2050: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2051: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2052: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2053: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2054: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2055: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2056: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2057: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2058: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2059: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2060: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2061: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2062: [31, 31, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 2063: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2064: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2065: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2066: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2067: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2068: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2069: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2070: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2071: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2072: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2073: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2074: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2075: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2076: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2077: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2078: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2079: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2080: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2081: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2082: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2083: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2084: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2085: [31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2086: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2087: [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2088: [30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2089: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2090: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2091: [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2092: [30, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2093: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2094: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2095: [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2096: [30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2097: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2098: [31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 29, 31],\n 2099: [31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30],\n 2100: [31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30],\n 2101: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2102: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2103: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2104: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2105: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2106: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2107: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2108: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2109: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2110: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2111: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2112: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2113: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2114: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2115: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2116: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2117: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2118: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2119: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2120: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2121: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2122: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2123: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2124: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2125: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2126: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2127: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2128: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2129: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2130: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2131: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2132: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2133: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2134: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2135: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2136: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2137: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2138: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2139: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 31],\n 2140: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2141: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2142: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2143: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2144: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2145: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2146: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2147: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2148: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2149: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2150: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2151: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2152: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2153: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2154: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2155: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2156: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2157: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2158: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2159: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2160: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2161: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2162: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2163: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2164: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2165: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2166: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2167: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2168: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2169: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2170: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2171: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2172: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2173: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2174: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2175: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2176: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2177: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2178: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2179: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2180: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2181: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2182: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2183: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2184: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2185: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2186: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2187: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2188: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2189: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2190: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2191: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2192: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2193: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2194: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2195: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2196: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2197: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2198: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2199: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n};\n\n/**\n * Nepali month names\n */\nexport const BS_MONTHS_NP: string[] = [\n 'बैशाख',\n 'जेष्ठ',\n 'आषाढ',\n 'श्रावण',\n 'भाद्र',\n 'आश्विन',\n 'कार्तिक',\n 'मंसिर',\n 'पौष',\n 'माघ',\n 'फाल्गुन',\n 'चैत्र',\n];\n\n/**\n * English month names (Romanized)\n */\nexport const BS_MONTHS_EN: string[] = [\n 'Baisakh',\n 'Jestha',\n 'Ashadh',\n 'Shrawan',\n 'Bhadra',\n 'Ashwin',\n 'Kartik',\n 'Mangsir',\n 'Paush',\n 'Magh',\n 'Falgun',\n 'Chaitra',\n];\n\n/**\n * Nepali weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_NP: string[] = ['आइत', 'सोम', 'मंगल', 'बुध', 'बिही', 'शुक्र', 'शनि'];\n\n/**\n * English weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_EN: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/**\n * Nepali numerals mapping\n */\nexport const NEPALI_DIGITS: string[] = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];\n\n/**\n * Reference date for conversion calculations\n * BS: 1975-01-01 corresponds to AD: 1918-04-13\n */\nexport const BS_EPOCH = {\n year: 1975,\n month: 1,\n day: 1,\n};\n\nexport const AD_EPOCH = new Date(1918, 3, 13); // April 13, 1918\n\n/**\n * Get minimum supported BS year\n */\nexport const BS_MIN_YEAR = Math.min(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Get maximum supported BS year\n */\nexport const BS_MAX_YEAR = Math.max(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Convert number to Nepali digits\n */\nexport function toNepaliDigits(num: number | string): string {\n return String(num)\n .split('')\n .map((char) => {\n const digit = parseInt(char, 10);\n return isNaN(digit) ? char : NEPALI_DIGITS[digit];\n })\n .join('');\n}\n\n/**\n * Get total days in a BS year\n */\nexport function getTotalDaysInBSYear(year: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n return monthDays.reduce((sum, days) => sum + days, 0);\n}\n\n/**\n * Get days in a specific BS month\n */\nexport function getDaysInBSMonth(year: number, month: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n if (month < 1 || month > 12) {\n throw new Error(`Month ${month} is invalid. Must be between 1 and 12.`);\n }\n return monthDays[month - 1];\n}\n","import {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n AD_EPOCH,\n BS_EPOCH,\n getDaysInBSMonth,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * NepaliDate - Represents a date in the Bikram Sambat (BS) calendar\n */\nexport class NepaliDate {\n private _year: number;\n private _month: number;\n private _day: number;\n\n constructor(year: number, month: number, day: number) {\n this._year = year;\n this._month = month;\n this._day = day;\n }\n\n // Getters\n get year(): number {\n return this._year;\n }\n\n get month(): number {\n return this._month;\n }\n\n get day(): number {\n return this._day;\n }\n\n /**\n * Create NepaliDate from current date\n */\n static today(): NepaliDate {\n return NepaliDate.fromAD(new Date());\n }\n\n /**\n * Create NepaliDate from AD Date\n */\n static fromAD(adDate: Date): NepaliDate {\n // Calculate days from epoch\n const epochTime = AD_EPOCH.getTime();\n const targetTime = new Date(adDate.getFullYear(), adDate.getMonth(), adDate.getDate()).getTime();\n let daysDiff = Math.floor((targetTime - epochTime) / (1000 * 60 * 60 * 24));\n\n if (daysDiff < 0) {\n throw new Error('Date is before supported range');\n }\n\n let bsYear = BS_EPOCH.year;\n let bsMonth = BS_EPOCH.month;\n let bsDay = BS_EPOCH.day;\n\n // Add days\n while (daysDiff > 0) {\n const daysInMonth = getDaysInBSMonth(bsYear, bsMonth);\n const daysRemainingInMonth = daysInMonth - bsDay;\n\n if (daysDiff <= daysRemainingInMonth) {\n bsDay += daysDiff;\n daysDiff = 0;\n } else {\n daysDiff -= daysRemainingInMonth + 1;\n bsMonth++;\n bsDay = 1;\n\n if (bsMonth > 12) {\n bsMonth = 1;\n bsYear++;\n if (bsYear > BS_MAX_YEAR) {\n throw new Error(`Date exceeds supported range (max: ${BS_MAX_YEAR} BS)`);\n }\n }\n }\n }\n\n return new NepaliDate(bsYear, bsMonth, bsDay);\n }\n\n /**\n * Convert to AD Date\n */\n toAD(): Date {\n if (!this.isValid()) {\n throw new Error('Invalid NepaliDate');\n }\n\n let totalDays = 0;\n\n // Add days for complete years\n for (let year = BS_EPOCH.year; year < this._year; year++) {\n const yearData = BS_CALENDAR_DATA[year];\n if (yearData) {\n totalDays += yearData.reduce((sum, days) => sum + days, 0);\n }\n }\n\n // Add days for complete months in current year\n for (let month = 1; month < this._month; month++) {\n totalDays += getDaysInBSMonth(this._year, month);\n }\n\n // Add remaining days\n totalDays += this._day - 1;\n\n // Calculate AD date from epoch\n const adDate = new Date(AD_EPOCH);\n adDate.setDate(adDate.getDate() + totalDays);\n\n return adDate;\n }\n\n /**\n * Check if the date is valid\n */\n isValid(): boolean {\n // Check year range\n if (this._year < BS_MIN_YEAR || this._year > BS_MAX_YEAR) {\n return false;\n }\n\n // Check month range\n if (this._month < 1 || this._month > 12) {\n return false;\n }\n\n // Check day range\n const daysInMonth = getDaysInBSMonth(this._year, this._month);\n if (this._day < 1 || this._day > daysInMonth) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Get the day of week (0 = Sunday, 6 = Saturday)\n */\n getDay(): number {\n return this.toAD().getDay();\n }\n\n /**\n * Get month name in specified language\n */\n getMonthName(lang: 'en' | 'np' = 'en'): string {\n return lang === 'np' ? BS_MONTHS_NP[this._month - 1] : BS_MONTHS_EN[this._month - 1];\n }\n\n /**\n * Format date according to pattern\n * Patterns:\n * YYYY - 4-digit year\n * YY - 2-digit year\n * MM - 2-digit month\n * M - month without leading zero\n * DD - 2-digit day\n * D - day without leading zero\n * MMMM - full month name (English)\n * mmmm - full month name (Nepali)\n */\n format(pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n let result = pattern;\n\n // Replace patterns (order matters - longer patterns first)\n result = result.replace(/YYYY/g, String(this._year).padStart(4, '0'));\n result = result.replace(/YY/g, String(this._year).slice(-2));\n result = result.replace(/MMMM/g, BS_MONTHS_EN[this._month - 1]);\n result = result.replace(/mmmm/g, BS_MONTHS_NP[this._month - 1]);\n result = result.replace(/MM/g, String(this._month).padStart(2, '0'));\n result = result.replace(/M/g, String(this._month));\n result = result.replace(/DD/g, String(this._day).padStart(2, '0'));\n result = result.replace(/D/g, String(this._day));\n\n if (useNepaliDigits) {\n result = toNepaliDigits(result);\n }\n\n return result;\n }\n\n /**\n * Create a clone of this date\n */\n clone(): NepaliDate {\n return new NepaliDate(this._year, this._month, this._day);\n }\n\n /**\n * Compare with another NepaliDate\n * Returns: -1 if this < other, 0 if equal, 1 if this > other\n */\n compareTo(other: NepaliDate): number {\n if (this._year !== other._year) {\n return this._year < other._year ? -1 : 1;\n }\n if (this._month !== other._month) {\n return this._month < other._month ? -1 : 1;\n }\n if (this._day !== other._day) {\n return this._day < other._day ? -1 : 1;\n }\n return 0;\n }\n\n /**\n * Check if this date is before another\n */\n isBefore(other: NepaliDate): boolean {\n return this.compareTo(other) < 0;\n }\n\n /**\n * Check if this date is after another\n */\n isAfter(other: NepaliDate): boolean {\n return this.compareTo(other) > 0;\n }\n\n /**\n * Check if this date equals another\n */\n equals(other: NepaliDate): boolean {\n return this.compareTo(other) === 0;\n }\n\n /**\n * Add days to date (returns new NepaliDate)\n */\n addDays(days: number): NepaliDate {\n const adDate = this.toAD();\n adDate.setDate(adDate.getDate() + days);\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Add months to date (returns new NepaliDate)\n */\n addMonths(months: number): NepaliDate {\n let newYear = this._year;\n let newMonth = this._month + months;\n\n while (newMonth > 12) {\n newMonth -= 12;\n newYear++;\n }\n while (newMonth < 1) {\n newMonth += 12;\n newYear--;\n }\n\n // Adjust day if it exceeds days in new month\n const daysInNewMonth = getDaysInBSMonth(newYear, newMonth);\n const newDay = Math.min(this._day, daysInNewMonth);\n\n return new NepaliDate(newYear, newMonth, newDay);\n }\n\n /**\n * Add years to date (returns new NepaliDate)\n */\n addYears(years: number): NepaliDate {\n const newYear = this._year + years;\n const daysInNewMonth = getDaysInBSMonth(newYear, this._month);\n const newDay = Math.min(this._day, daysInNewMonth);\n return new NepaliDate(newYear, this._month, newDay);\n }\n\n /**\n * Get string representation\n */\n toString(): string {\n return this.format('YYYY-MM-DD');\n }\n\n /**\n * Convert to plain object\n */\n toObject(): { year: number; month: number; day: number } {\n return {\n year: this._year,\n month: this._month,\n day: this._day,\n };\n }\n\n /**\n * Create from plain object\n */\n static fromObject(obj: { year: number; month: number; day: number }): NepaliDate {\n return new NepaliDate(obj.year, obj.month, obj.day);\n }\n\n /**\n * Parse from string (YYYY-MM-DD format)\n */\n static parse(dateString: string): NepaliDate {\n const parts = dateString.split('-').map(Number);\n if (parts.length !== 3 || parts.some(isNaN)) {\n throw new Error('Invalid date format. Expected YYYY-MM-DD');\n }\n return new NepaliDate(parts[0], parts[1], parts[2]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NepaliDate } from '../models/nepali-date.model';\nimport {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_WEEKDAYS_EN,\n BS_WEEKDAYS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n getDaysInBSMonth,\n getTotalDaysInBSYear,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * DateConverterService - Service for BS/AD date conversions and utilities\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DateConverterService {\n /**\n * Convert AD Date to NepaliDate (BS)\n */\n convertToBS(adDate: Date): NepaliDate {\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Convert NepaliDate (BS) to AD Date\n */\n convertToAD(bsDate: NepaliDate): Date {\n return bsDate.toAD();\n }\n\n /**\n * Get today's date in BS\n */\n getTodayBS(): NepaliDate {\n return NepaliDate.today();\n }\n\n /**\n * Get number of days in a BS month\n */\n getDaysInMonth(year: number, month: number): number {\n return getDaysInBSMonth(year, month);\n }\n\n /**\n * Get total days in a BS year\n */\n getDaysInYear(year: number): number {\n return getTotalDaysInBSYear(year);\n }\n\n /**\n * Get month names\n */\n getMonthNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_MONTHS_NP] : [...BS_MONTHS_EN];\n }\n\n /**\n * Get weekday names\n */\n getWeekdayNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_WEEKDAYS_NP] : [...BS_WEEKDAYS_EN];\n }\n\n /**\n * Get minimum supported year\n */\n getMinYear(): number {\n return BS_MIN_YEAR;\n }\n\n /**\n * Get maximum supported year\n */\n getMaxYear(): number {\n return BS_MAX_YEAR;\n }\n\n /**\n * Validate a BS date\n */\n isValidDate(year: number, month: number, day: number): boolean {\n const date = new NepaliDate(year, month, day);\n return date.isValid();\n }\n\n /**\n * Format a NepaliDate\n */\n format(date: NepaliDate, pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n return date.format(pattern, useNepaliDigits);\n }\n\n /**\n * Parse a date string to NepaliDate\n */\n parse(dateString: string): NepaliDate {\n return NepaliDate.parse(dateString);\n }\n\n /**\n * Convert number to Nepali digits\n */\n toNepaliDigits(num: number | string): string {\n return toNepaliDigits(num);\n }\n\n /**\n * Get calendar grid for a month\n * Returns a 2D array representing weeks (rows) and days (columns)\n * Each cell contains the day number or null for empty cells\n */\n getMonthCalendarGrid(year: number, month: number): (number | null)[][] {\n const daysInMonth = this.getDaysInMonth(year, month);\n const firstDayOfMonth = new NepaliDate(year, month, 1);\n const startDayOfWeek = firstDayOfMonth.getDay(); // 0 = Sunday\n\n const grid: (number | null)[][] = [];\n let currentWeek: (number | null)[] = [];\n\n // Fill empty cells before first day\n for (let i = 0; i < startDayOfWeek; i++) {\n currentWeek.push(null);\n }\n\n // Fill days\n for (let day = 1; day <= daysInMonth; day++) {\n currentWeek.push(day);\n\n if (currentWeek.length === 7) {\n grid.push(currentWeek);\n currentWeek = [];\n }\n }\n\n // Fill remaining empty cells in last week\n if (currentWeek.length > 0) {\n while (currentWeek.length < 7) {\n currentWeek.push(null);\n }\n grid.push(currentWeek);\n }\n\n return grid;\n }\n\n /**\n * Get years range for year selector\n */\n getYearRange(startYear?: number, endYear?: number): number[] {\n const start = startYear ?? BS_MIN_YEAR;\n const end = endYear ?? BS_MAX_YEAR;\n const years: number[] = [];\n\n for (let year = start; year <= end; year++) {\n if (BS_CALENDAR_DATA[year]) {\n years.push(year);\n }\n }\n\n return years;\n }\n\n /**\n * Check if a date is within a range\n */\n isDateInRange(date: NepaliDate, minDate?: NepaliDate, maxDate?: NepaliDate): boolean {\n if (minDate && date.isBefore(minDate)) {\n return false;\n }\n if (maxDate && date.isAfter(maxDate)) {\n return false;\n }\n return true;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n HostListener,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NepaliDate } from '../../models/nepali-date.model';\nimport { DateConverterService } from '../../services/date-converter.service';\nimport { toNepaliDigits } from '../../utils/bs-calendar-data';\n\n@Component({\n selector: 'f1-nepali-date-picker',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './nepali-date-picker.component.html',\n styleUrls: ['./nepali-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NepaliDatePickerComponent),\n multi: true,\n },\n ],\n})\nexport class NepaliDatePickerComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {\n /** Minimum selectable date */\n @Input() minDate?: NepaliDate;\n\n /** Maximum selectable date */\n @Input() maxDate?: NepaliDate;\n\n /** Placeholder text */\n @Input() placeholder = 'Select date';\n\n /** Display format for the input */\n @Input() displayFormat = 'YYYY-MM-DD';\n\n /** Theme: 'light' or 'dark' */\n @Input() theme: 'light' | 'dark' = 'light';\n\n /** Language for month/day names */\n @Input() language: 'en' | 'np' = 'en';\n\n /** Show today button */\n @Input() showTodayButton = true;\n\n /** Disabled state */\n @Input() disabled = false;\n\n /** Use Nepali digits in display */\n @Input() useNepaliDigits = false;\n\n /** Event emitted when date changes */\n @Output() dateChange = new EventEmitter<NepaliDate | null>();\n\n // Internal state\n isOpen = false;\n selectedDate: NepaliDate | null = null;\n viewDate: NepaliDate;\n calendarGrid: (number | null)[][] = [];\n monthNames: string[] = [];\n weekdayNames: string[] = [];\n years: number[] = [];\n\n // CVA callbacks\n private onChange: (value: NepaliDate | null) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor(\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n private dateConverter: DateConverterService\n ) {\n this.viewDate = this.dateConverter.getTodayBS();\n }\n\n ngOnInit(): void {\n this.monthNames = this.dateConverter.getMonthNames(this.language);\n this.weekdayNames = this.dateConverter.getWeekdayNames(this.language);\n this.years = this.dateConverter.getYearRange();\n this.updateCalendarGrid();\n }\n\n ngOnDestroy(): void { }\n\n ngOnChanges(changes: SimpleChanges): void {\n // Update month/weekday names when language changes\n if (changes['language'] && !changes['language'].firstChange) {\n this.monthNames = this.dateConverter.getMonthNames(this.language);\n this.weekdayNames = this.dateConverter.getWeekdayNames(this.language);\n this.cdr.markForCheck();\n }\n // Trigger change detection when useNepaliDigits changes\n if (changes['useNepaliDigits'] && !changes['useNepaliDigits'].firstChange) {\n this.cdr.markForCheck();\n }\n }\n\n // ControlValueAccessor implementation\n writeValue(value: NepaliDate | null): void {\n this.selectedDate = value;\n if (value) {\n this.viewDate = value.clone();\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: NepaliDate | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n // UI Methods\n toggleCalendar(): void {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.onTouched();\n this.updateCalendarGrid();\n }\n this.cdr.markForCheck();\n }\n\n closeCalendar(): void {\n this.isOpen = false;\n this.cdr.markForCheck();\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeCalendar();\n }\n }\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n this.closeCalendar();\n }\n\n // Navigation\n previousMonth(): void {\n this.viewDate = this.viewDate.addMonths(-1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n nextMonth(): void {\n this.viewDate = this.viewDate.addMonths(1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onYearChange(event: Event): void {\n const year = parseInt((event.target as HTMLSelectElement).value, 10);\n this.viewDate = new NepaliDate(year, this.viewDate.month, 1);\n // Adjust day if needed\n const daysInMonth = this.dateConverter.getDaysInMonth(year, this.viewDate.month);\n if (this.viewDate.day > daysInMonth) {\n this.viewDate = new NepaliDate(year, this.viewDate.month, daysInMonth);\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onMonthChange(event: Event): void {\n const month = parseInt((event.target as HTMLSelectElement).value, 10);\n const daysInMonth = this.dateConverter.getDaysInMonth(this.viewDate.year, month);\n const newDay = Math.min(this.viewDate.day, daysInMonth);\n this.viewDate = new NepaliDate(this.viewDate.year, month, newDay);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n // Date selection\n selectDate(day: number | null): void {\n if (day === null || this.disabled) return;\n\n const newDate = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n\n if (!this.isDateSelectable(day)) return;\n\n this.selectedDate = newDate;\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n\n selectToday(): void {\n const today = this.dateConverter.getTodayBS();\n if (this.dateConverter.isDateInRange(today, this.minDate, this.maxDate)) {\n this.selectedDate = today;\n this.viewDate = today.clone();\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.updateCalendarGrid();\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n }\n\n clearDate(): void {\n this.selectedDate = null;\n this.onChange(null);\n this.dateChange.emit(null);\n this.cdr.markForCheck();\n }\n\n // Helper methods\n private updateCalendarGrid(): void {\n this.calendarGrid = this.dateConverter.getMonthCalendarGrid(this.viewDate.year, this.viewDate.month);\n }\n\n isDateSelectable(day: number): boolean {\n if (day === null) return false;\n const date = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n return this.dateConverter.isDateInRange(date, this.minDate, this.maxDate);\n }\n\n isToday(day: number): boolean {\n if (day === null) return false;\n const today = this.dateConverter.getTodayBS();\n return (\n this.viewDate.year === today.year && this.viewDate.month === today.month && day === today.day\n );\n }\n\n isSelected(day: number): boolean {\n if (day === null || !this.selectedDate) return false;\n return (\n this.viewDate.year === this.selectedDate.year &&\n this.viewDate.month === this.selectedDate.month &&\n day === this.selectedDate.day\n );\n }\n\n get displayValue(): string {\n if (!this.selectedDate) return '';\n return this.selectedDate.format(this.displayFormat, this.useNepaliDigits);\n }\n\n get currentMonthName(): string {\n return this.monthNames[this.viewDate.month - 1];\n }\n\n trackByWeek(index: number): number {\n return index;\n }\n\n trackByDay(index: number): number {\n return index;\n }\n\n /**\n * Format day number based on useNepaliDigits setting\n */\n formatDay(day: number | null): string {\n if (day === null) return '';\n return this.useNepaliDigits ? toNepaliDigits(day) : String(day);\n }\n\n /**\n * Format year number based on useNepaliDigits setting\n */\n formatYear(year: number): string {\n return this.useNepaliDigits ? toNepaliDigits(year) : String(year);\n }\n}\n","<div class=\"f1-datepicker\" [class.f1-datepicker--dark]=\"theme === 'dark'\" [class.f1-datepicker--disabled]=\"disabled\">\n <!-- Input Field -->\n <div class=\"f1-datepicker__input-wrapper\" (click)=\"toggleCalendar()\">\n <input type=\"text\" class=\"f1-datepicker__input\" [value]=\"displayValue\" [placeholder]=\"placeholder\"\n [disabled]=\"disabled\" readonly />\n <span class=\"f1-datepicker__icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\n </svg>\n </span>\n <button *ngIf=\"selectedDate && !disabled\" type=\"button\" class=\"f1-datepicker__clear\"\n (click)=\"clearDate(); $event.stopPropagation()\" aria-label=\"Clear date\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <!-- Calendar Dropdown -->\n <div class=\"f1-datepicker__dropdown\" *ngIf=\"isOpen\" [@fadeIn]>\n <!-- Header -->\n <div class=\"f1-datepicker__header\">\n <button type=\"button\" class=\"f1-datepicker__nav-btn\" (click)=\"previousMonth()\" aria-label=\"Previous month\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n </button>\n\n <div class=\"f1-datepicker__selectors\">\n <select class=\"f1-datepicker__select\" [value]=\"viewDate.month\" (change)=\"onMonthChange($event)\">\n <option *ngFor=\"let month of monthNames; let i = index\" [value]=\"i + 1\">\n {{ month }}\n </option>\n </select>\n\n <select class=\"f1-datepicker__select\" [value]=\"viewDate.year\" (change)=\"onYearChange($event)\">\n <option *ngFor=\"let year of years\" [value]=\"year\">\n {{ formatYear(year) }}\n </option>\n </select>\n </div>\n\n <button type=\"button\" class=\"f1-datepicker__nav-btn\" (click)=\"nextMonth()\" aria-label=\"Next month\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n </button>\n </div>\n\n <!-- Weekday Headers -->\n <div class=\"f1-datepicker__weekdays\">\n <div class=\"f1-datepicker__weekday\" *ngFor=\"let day of weekdayNames\">\n {{ day }}\n </div>\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"f1-datepicker__grid\">\n <div class=\"f1-datepicker__week\" *ngFor=\"let week of calendarGrid; trackBy: trackByWeek\">\n <button type=\"button\" class=\"f1-datepicker__day\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.f1-datepicker__day--empty]=\"day === null\"\n [class.f1-datepicker__day--today]=\"day !== null && isToday(day)\"\n [class.f1-datepicker__day--selected]=\"day !== null && isSelected(day)\"\n [class.f1-datepicker__day--disabled]=\"day !== null && !isDateSelectable(day)\"\n [disabled]=\"day === null || !isDateSelectable(day)\" (click)=\"selectDate(day)\">\n {{ formatDay(day) }}\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"f1-datepicker__footer\" *ngIf=\"showTodayButton\">\n <button type=\"button\" class=\"f1-datepicker__today-btn\" (click)=\"selectToday()\">\n {{ language === 'np' ? 'आज' : 'Today' }}\n </button>\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { NepaliDatePickerComponent } from './components/nepali-date-picker/nepali-date-picker.component';\n\n@NgModule({\n imports: [\n NepaliDatePickerComponent, // Standalone component, import directly\n ],\n exports: [\n NepaliDatePickerComponent,\n ],\n})\nexport class F1NepaliDatePickerModule { }\n","/*\n * Public API Surface of f1-nepali-date-picker\n */\n\n// Module\nexport * from './lib/f1-nepali-date-picker.module';\n\n// Components\nexport * from './lib/components/nepali-date-picker/nepali-date-picker.component';\n\n// Models\nexport * from './lib/models/nepali-date.model';\n\n// Services\nexport * from './lib/services/date-converter.service';\n\n// Utilities\nexport * from './lib/utils/bs-calendar-data';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DateConverterService"],"mappings":";;;;;;;AAAA;;;;AAIG;AAEH;;;;AAIG;AACU,MAAA,gBAAgB,GAAiC;IAC1D,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, ElementRef, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
3
|
import { NepaliDate } from '../../models/nepali-date.model';
|
|
4
4
|
import { DateConverterService } from '../../services/date-converter.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class NepaliDatePickerComponent implements OnInit, OnDestroy, ControlValueAccessor {
|
|
6
|
+
export declare class NepaliDatePickerComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {
|
|
7
7
|
private elementRef;
|
|
8
8
|
private cdr;
|
|
9
9
|
private dateConverter;
|
|
@@ -39,6 +39,7 @@ export declare class NepaliDatePickerComponent implements OnInit, OnDestroy, Con
|
|
|
39
39
|
constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, dateConverter: DateConverterService);
|
|
40
40
|
ngOnInit(): void;
|
|
41
41
|
ngOnDestroy(): void;
|
|
42
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
42
43
|
writeValue(value: NepaliDate | null): void;
|
|
43
44
|
registerOnChange(fn: (value: NepaliDate | null) => void): void;
|
|
44
45
|
registerOnTouched(fn: () => void): void;
|
|
@@ -62,6 +63,14 @@ export declare class NepaliDatePickerComponent implements OnInit, OnDestroy, Con
|
|
|
62
63
|
get currentMonthName(): string;
|
|
63
64
|
trackByWeek(index: number): number;
|
|
64
65
|
trackByDay(index: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* Format day number based on useNepaliDigits setting
|
|
68
|
+
*/
|
|
69
|
+
formatDay(day: number | null): string;
|
|
70
|
+
/**
|
|
71
|
+
* Format year number based on useNepaliDigits setting
|
|
72
|
+
*/
|
|
73
|
+
formatYear(year: number): string;
|
|
65
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<NepaliDatePickerComponent, never>;
|
|
66
75
|
static ɵcmp: i0.ɵɵComponentDeclaration<NepaliDatePickerComponent, "f1-nepali-date-picker", never, { "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "language": { "alias": "language"; "required": false; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "useNepaliDigits": { "alias": "useNepaliDigits"; "required": false; }; }, { "dateChange": "dateChange"; }, never, never, true, never>;
|
|
67
76
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bikram Sambat Calendar Data
|
|
3
3
|
* Contains month days mapping for each BS year and localization strings
|
|
4
|
+
* Extended data sourced from: https://github.com/techgaun/ad-bs-converter
|
|
4
5
|
*/
|
|
5
6
|
/**
|
|
6
7
|
* BS Year to Month Days Mapping
|
|
7
8
|
* Each entry: [year]: [days in each month from Baisakh to Chaitra]
|
|
8
|
-
* Data range:
|
|
9
|
+
* Data range: 1975 BS to 2199 BS
|
|
9
10
|
*/
|
|
10
11
|
export declare const BS_CALENDAR_DATA: {
|
|
11
12
|
[year: number]: number[];
|
|
@@ -32,7 +33,7 @@ export declare const BS_WEEKDAYS_EN: string[];
|
|
|
32
33
|
export declare const NEPALI_DIGITS: string[];
|
|
33
34
|
/**
|
|
34
35
|
* Reference date for conversion calculations
|
|
35
|
-
* BS:
|
|
36
|
+
* BS: 1975-01-01 corresponds to AD: 1918-04-13
|
|
36
37
|
*/
|
|
37
38
|
export declare const BS_EPOCH: {
|
|
38
39
|
year: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@f1softinternational/f1-nepali-date-picker",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Angular 16+ Nepali (Bikram Sambat) Date Picker with AD/BS conversion utilities",
|
|
5
5
|
"author": "F1Soft International <dev@f1soft.com>",
|
|
6
6
|
"license": "MIT",
|