{"version":3,"file":"ngx-np-mpicker.mjs","sources":["../../../projects/npx-np-mpicker/src/lib/np-mpicker.service.ts","../../../projects/npx-np-mpicker/src/lib/mapping.ts","../../../projects/npx-np-mpicker/src/lib/to-np.pipe.ts","../../../projects/npx-np-mpicker/src/lib/np-mpicker.component.ts","../../../projects/npx-np-mpicker/src/lib/np-mpicker.component.html","../../../projects/npx-np-mpicker/src/lib/np-mpicker.module.ts","../../../projects/npx-np-mpicker/src/public-api.ts","../../../projects/npx-np-mpicker/src/ngx-np-mpicker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class NpMPickerService {\r\n  englishMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n  englishLeapMonths = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n  nepaliMonths = [\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], //2000\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], //2001\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], // 2002\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], // 2003\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], // 2004\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], // 2005\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], // 2006\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], // 2006\r\n    [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31], // 2007\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], // 2008\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], // 2009\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], // 2010\r\n    [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\r\n    [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], //2071\r\n    [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], //2072\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], //2073\r\n    [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], // 2076\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\r\n    [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], // 2078\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], // 2079\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\r\n    [31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\r\n    [30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], //2090\r\n    [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\r\n    [30, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\r\n    [30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\r\n    [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\r\n    [31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 29, 31],\r\n    [31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30], //2099\r\n  ];\r\n\r\n  englishYear: any;\r\n  englishMonth: any;\r\n  englishDate: any;\r\n\r\n  nepaliYear: any;\r\n  nepaliMonth: any;\r\n  nepaliDate: any;\r\n\r\n  weekDay: any;\r\n  format = '.';\r\n\r\n  constructor() {\r\n    var d = new Date();\r\n  }\r\n\r\n  setCurrentNepaliDate() {\r\n    var d = new Date();\r\n    return this.engToNepDate( d.getDate(), d.getMonth(),d.getFullYear() );\r\n  }\r\n\r\n  //English to Nepali date conversion\r\n  engToNepDate(date: any, month: any, year: any) {\r\n    if (!this.isEnglishRange(date, month, year))\r\n      console.log('Invalid date format.');\r\n\r\n    this.englishYear = year;\r\n    this.englishMonth = month + 1;\r\n    this.englishDate = date;\r\n    \r\n    //Setting nepali reference to 2000/1/1 with english date 1943/4/14\r\n    this.nepaliYear = 2000;\r\n    this.nepaliMonth = 1;\r\n    this.nepaliDate = 1;\r\n\r\n    var difference = this.getEnglishDateDifference(1943, 4, 14);\r\n    \r\n    //Getting nepali year untill the difference remains less than 365\r\n    var index = 0;\r\n    while (difference >= this.nepaliYearDays(index)) {\r\n      this.nepaliYear++;\r\n      difference = difference - this.nepaliYearDays(index);\r\n      index++;\r\n      //console.log('Difference:'+difference+ 'nepaliYearDays:'+this.nepaliYearDays(index));\r\n    }\r\n    \r\n    //console.log(\"nepaliMonths=\"+this.nepaliMonths[index][0]+\"difference:\"+difference);\r\n    //Getting nepali month untill the difference remains less than 31\r\n    var i = 0;\r\n    while (difference >= this.nepaliMonths[index][i]) {\r\n      difference = difference - this.nepaliMonths[index][i];\r\n      this.nepaliMonth++;\r\n      i++;\r\n      //console.log(\"nepaliMonths=\"+this.nepaliMonths[index][i]+\"difference:\"+difference);\r\n    }\r\n    this.nepaliMonth--;\r\n    //console.log(difference);\r\n   \r\n    //Remaning days is the date;\r\n    this.nepaliDate = this.nepaliDate + difference;\r\n    this.getDay();\r\n    \r\n    return {\r\n      day: this.nepaliDate,\r\n      month: this.nepaliMonth,\r\n      year: this.nepaliYear\r\n    };\r\n  }\r\n\r\n  toEnglishString(format: any) {\r\n    if (typeof format === 'undefined') format = '-';\r\n    return (\r\n      this.englishYear + format + this.englishMonth + format + this.englishDate\r\n    );\r\n  }\r\n\r\n  getEnglishDateDifference(year: any, month: any, date: any) {\r\n    //Getting difference from the current date with the date provided\r\n    var difference =\r\n      this.countTotalEnglishDays(\r\n        this.englishYear,\r\n        this.englishMonth,\r\n        this.englishDate\r\n      ) - this.countTotalEnglishDays(year, month, date);\r\n    return difference < 0 ? -difference : difference;\r\n  }\r\n\r\n  countTotalEnglishDays(year: any, month: any, date: any) {\r\n    var totalDays = year * 365 + date;\r\n\r\n    for (var i = 0; i < month - 1; i++)\r\n      totalDays = totalDays + this.englishMonths[i];\r\n\r\n    totalDays = totalDays + this.countleap(year, month);\r\n    return totalDays;\r\n  }\r\n\r\n  countleap(year: any, month: any) {\r\n    if (month <= 2) year--;\r\n\r\n    return (\r\n      Math.floor(year / 4) - Math.floor(year / 100) + Math.floor(year / 400)\r\n    );\r\n  }\r\n\r\n  isEnglishRange(date: any, month: any, year: any) {\r\n    if (year < 1944 || year > 2042) return false;\r\n    if (month < 1 || month > 12) return false;\r\n    if (date < 1 || date > 31) return false;\r\n\r\n    return true;\r\n  }\r\n\r\n  isLeapYear(year: any) {\r\n    if (year % 4 === 0) {\r\n      return year % 100 === 0 ? year % 400 === 0 : true;\r\n    } else return false;\r\n  }\r\n\r\n  //Nepali to English conversion\r\n  nepToEngDate(date: any, month: any, year: any) {\r\n    if (!this.isNepaliRange(date, month, year)) {\r\n      console.log('Invalid Date Format');\r\n      // throw new Exception(\"Invalid date format.\");\r\n      return;\r\n    }\r\n\r\n    this.nepaliYear = year;\r\n    this.nepaliMonth = month+1;\r\n    this.nepaliDate = date;\r\n\r\n    //Setting english reference to 1944/1/1 with nepali date 2000/9/17\r\n    this.englishYear = 1944;\r\n    this.englishMonth = 1;\r\n    this.englishDate = 1;\r\n\r\n    var difference = this.getNepaliDateDifference(2000, 9, 17);\r\n\r\n    //Getting english year untill the difference remains less than 365\r\n    while (difference >= (this.isLeapYear(this.englishYear) ? 366 : 365)) {\r\n      difference = difference - (this.isLeapYear(this.englishYear) ? 366 : 365);\r\n      this.englishYear++;\r\n    }\r\n\r\n    //Getting english month untill the difference remains less than 31\r\n    var monthDays = this.isLeapYear(this.englishYear)\r\n      ? this.englishLeapMonths\r\n      : this.englishMonths;\r\n    var i = 0;\r\n    while (difference >= monthDays[i]) {\r\n      this.englishMonth++;\r\n      difference = difference - monthDays[i];\r\n      i++;\r\n    }\r\n\r\n    //Remaning days is the date;\r\n    this.englishDate = this.englishDate + difference;\r\n    this.getDay();\r\n\r\n    return new Date(this.englishYear + '-' + this.englishMonth + '-' + this.englishDate);\r\n  }\r\n\r\n  toNepaliString(format: any) {\r\n    if (typeof format === 'undefined') format = '-';\r\n    return (\r\n      this.nepaliYear + format + this.nepaliMonth + format + this.nepaliDate\r\n    );\r\n  }\r\n\r\n  getNepaliDateDifference(year: any, month: any, date: any) {\r\n    //Getting difference from the current date with the date provided\r\n    var difference =\r\n      this.countTotalNepaliDays(\r\n        this.nepaliYear,\r\n        this.nepaliMonth,\r\n        this.nepaliDate\r\n      ) - this.countTotalNepaliDays(year, month, date);\r\n    return difference < 0 ? -difference : difference;\r\n  }\r\n\r\n  countTotalNepaliDays(year: any, month: any, date: any) {\r\n    var total = 0;\r\n    if (year < 2000) return 0;\r\n\r\n    total = total + (date - 1);\r\n\r\n    var yearIndex = year - 2000;\r\n    for (var i = 0; i < month - 1; i++)\r\n      total = total + this.nepaliMonths[yearIndex][i];\r\n\r\n    for (var i = 0; i < yearIndex; i++) total = total + this.nepaliYearDays(i);\r\n\r\n    return total;\r\n  }\r\n\r\n  nepaliYearDays(index: any) {\r\n    var total = 0;\r\n    for (var i = 0; i < 12; i++) total += this.nepaliMonths[index][i];\r\n    return total;\r\n  }\r\n\r\n  isNepaliRange(date: any, month: any, year: any) {\r\n    if (year < 2000 || year > 2099) return false;\r\n\r\n    if (month < 0 || month > 11) return false;\r\n\r\n    if (date < 1 || date > this.nepaliMonths[year - 2000][month - 1])\r\n      return false;\r\n\r\n    return true;\r\n  }\r\n\r\n  //Class Regular methods\r\n\r\n  getDay() {\r\n    //Reference date 1943/4/14 Wednesday\r\n    var difference = this.getEnglishDateDifference(1943, 4, 14);\r\n    this.weekDay = ((3 + (difference % 7)) % 7) + 1;\r\n    return this.weekDay;\r\n  }\r\n\r\n  getEnglishYear() {\r\n    return this.englishYear;\r\n  }\r\n\r\n  getEnglishMonth() {\r\n    return this.englishMonth;\r\n  }\r\n\r\n  getEnglishDate() {\r\n    return this.englishDate;\r\n  }\r\n\r\n  getNepaliYear() {\r\n    return this.nepaliYear;\r\n  }\r\n  getNepaliMonth() {\r\n    return this.nepaliMonth;\r\n  }\r\n\r\n  getNepaliDate() {\r\n    return this.nepaliDate;\r\n  }\r\n\r\n}\r\n","import { MonthMapping, DaysMapping, WordsMapping } from './types';\r\n\r\nexport const numberMapping: string[] = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];\r\n\r\nexport const wordsMapping: WordsMapping = {\r\n  year: 'साल',\r\n  month: 'महिना'\r\n};\r\n\r\nexport const daysMapping: DaysMapping = {\r\n  en: {\r\n    default: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r\n    short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\r\n  },\r\n  ne: {\r\n    default: ['आइत', 'सोम', 'मंगल्', 'बुध', 'बिही', 'शुक्र', 'शनि'],\r\n    short: ['आ', 'सो', 'मं', 'बु', 'बि', 'शु', 'श']\r\n  }\r\n};\r\n\r\nexport const monthsMapping: MonthMapping = {\r\n  en: {\r\n    default: [\r\n      'Baisakh', 'Jestha', 'Asadh', 'Shrawan', 'Bhadra', 'Ashwin', 'Kartik', 'Mangsir', 'Poush', 'Marga', 'Falgun', 'Chaitra'\r\n    ],\r\n    modern: [\r\n      'Baisakh', 'Jeth', 'Asaar', 'Saawn', 'Bhadau', 'Aashoj', 'Kartik', 'Mangsir', 'Push', 'Magh', 'Fagun', 'Chait'\r\n    ],\r\n    short: [\r\n      'Bai', 'Jes', 'Asa', 'Shr', 'Bha', 'Ash', 'Kar', 'Man', 'Pou', 'Mar', 'Fal', 'Cha'\r\n    ]\r\n  },\r\n  ne: {\r\n    default: [\r\n      'बैशाख', 'जेष्ठ', 'आषाढ', 'श्रवण', 'भाद्र', 'आश्विन', 'कार्तिक', 'मंसिर', 'पौष', 'मार्ग', 'फाल्गुन', 'चैत्र'\r\n    ],\r\n    modern: [\r\n      'बैशाख', 'जेठ', 'असार', 'साउन', 'भदौ', 'अशोज', 'कार्तिक', 'मंसिर', 'पुष', 'माघ', 'फागुन', 'चैत'\r\n    ],\r\n    short: [\r\n      'बै', 'जे', 'अ', 'श्रा', 'भा', 'आ', 'का', 'मं', 'पौ', 'मा', 'फा', 'चै'\r\n    ]\r\n  }\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { numberMapping, wordsMapping } from './mapping';\r\n\r\n@Pipe({\r\n  name: 'toNp',\r\n})\r\nexport class ToNpPipe implements PipeTransform {\r\n  transform(\r\n    value: number | string,\r\n    language: string = 'ne',\r\n    type: string = 'number'\r\n  ): any {\r\n    if (value) {\r\n      if (language === 'ne') {\r\n        switch (type) {\r\n          case 'number':\r\n            const split = value.toString().split('');\r\n            return split\r\n              .map((n) => {\r\n                if (n === ' ') {\r\n                  return ' ';\r\n                }\r\n                return numberMapping[+n] ? numberMapping[+n] : n;\r\n              })\r\n              .join('');\r\n          case 'word':\r\n            let wrd = value.toString().toLowerCase();\r\n            if(wrd ==='month'){\r\n              return wordsMapping['month'];\r\n            }else if(wrd ==='year'){\r\n              return wordsMapping['year'];\r\n            }else{\r\n              return wrd\r\n            }\r\n            \r\n          default:\r\n        }\r\n      }else{\r\n      return value;\r\n    }\r\n    } else {\r\n      return '';\r\n    }\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  HostListener,\r\n  OnInit,\r\n  ElementRef,\r\n  Input,\r\n  forwardRef,\r\n  ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { NpMPickerService } from './np-mpicker.service';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport {\r\n  NepaliDate,\r\n  MonthData,\r\n  DaysMapping,\r\n  MonthMapping,\r\n  DateFormatter,\r\n} from './types';\r\nimport { daysMapping, monthsMapping } from './mapping';\r\n\r\n@Component({\r\n  selector: 'np-mpicker',\r\n  templateUrl: './np-mpicker.component.html',\r\n  styleUrls: ['./np-mpicker.component.css'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpMPickerComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NpMPickerComponent implements OnInit, ControlValueAccessor {\r\n  nepaliDateToday: NepaliDate = { day:0, month: 0, year: 0 };\r\n  currentNepaliDate: NepaliDate = { day:0, month: 0, year: 0 };\r\n  selectedDate!: NepaliDate;\r\n  formattedDate = '';\r\n  currentDate: any;\r\n\r\n  displayDate!: string;\r\n\r\n  years: number[] = [];\r\n\r\n  currentMonthData!: any;\r\n\r\n  daysMapping: DaysMapping = daysMapping;\r\n\r\n  monthsMapping: MonthMapping = monthsMapping;\r\n\r\n  isOpen = false;\r\n\r\n  hideInput = false;\r\n\r\n  alwaysVisible = false;\r\n\r\n  @Input()\r\n  theme!: string;\r\n\r\n  @Input()\r\n  language: 'en' | 'ne' = 'ne';\r\n\r\n  @Input() hasFuture: Boolean = true;\r\n\r\n  @Input() format: string = 'yy-mm-dd';\r\n\r\n  monthDisplayType: 'default' | 'modern' | 'short' = 'default';\r\n\r\n  dayDisplayType: 'default' | 'short' = 'short';\r\n\r\n  monthFormatter: DateFormatter = (selectedDate: NepaliDate) => {\r\n    \r\n    const mm =\r\n      selectedDate.month < 10\r\n        ? '0' + (selectedDate.month + 1)\r\n        : selectedDate.month + 1;\r\n\r\n     switch(this.format){\r\n      case 'dd-mm-yy':\r\n        return `$${mm}/${this.selectedDate.year}`;\r\n      default:\r\n        return `${this.selectedDate.year}/${mm}`;\r\n    }   \r\n  };\r\n\r\n  initialized: boolean = false;\r\n\r\n  yearSelector: Boolean = false;\r\n  monthSelector: Boolean = true;\r\n\r\n  ysStartYear: any;\r\n  ysEndYear: any;\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  clickout(event: any) {\r\n    if (!this.eRef.nativeElement.contains(event.target)) {\r\n      this.close();\r\n    }\r\n  }\r\n\r\n  constructor(\r\n    public _nepaliDate: NpMPickerService,\r\n    private eRef: ElementRef\r\n  ) {\r\n    this.currentDate = new Date();\r\n    this.nepaliDateToday = _nepaliDate.engToNepDate(\r\n      this.currentDate.getDate(),\r\n      this.currentDate.getMonth(),\r\n      this.currentDate.getFullYear()\r\n    );\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.setCurrentDate();\r\n    this.ysStartYear = this.currentNepaliDate.year - 10;\r\n    this.ysEndYear = this.currentNepaliDate.year + 9;\r\n    this.populateYears();\r\n  }\r\n\r\n  populateYears() {\r\n    this.years = [];\r\n    for (let i = this.ysStartYear; i <= this.ysEndYear; i++) {\r\n      this.years.push(i);\r\n    }\r\n  }\r\n  selectYear(e: any) {\r\n    this.currentNepaliDate.year = this.ysStartYear + e;\r\n\r\n    const newDate = {\r\n      day: this.currentNepaliDate.day,\r\n      month: this.currentNepaliDate.month,\r\n      year: this.currentNepaliDate.year,\r\n    };\r\n\r\n    this.currentDate = this._nepaliDate.nepToEngDate(\r\n      newDate.day,\r\n      newDate.month,\r\n      newDate.year\r\n    );\r\n    \r\n    this.gotoMonthSelector();\r\n  }\r\n\r\n  formatMonthValue() {\r\n    if (this.selectedDate) {\r\n      this.formattedDate = this.monthFormatter(this.selectedDate);\r\n    }\r\n  }\r\n  propagateChange = (_: any) => {};\r\n  propagateTouch = (_: any) => {};\r\n  writeValue(value: any) {\r\n    this.propagateChange(this.selectedDate);\r\n    if (value) {\r\n      this.selectedDate = value;\r\n      this.currentNepaliDate = value;\r\n      this.formatMonthValue();\r\n    }\r\n  }\r\n  registerOnTouched() {}\r\n  registerOnChange(fn: any) {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  setCurrentDate() {\r\n    if (!this.selectedDate) {\r\n      this.currentNepaliDate = this._nepaliDate.engToNepDate(\r\n        this.currentDate.getDate(),\r\n        this.currentDate.getMonth(),\r\n        this.currentDate.getFullYear()\r\n      );\r\n    } else {\r\n      const { day, month, year } = this.selectedDate;\r\n      this.currentNepaliDate = this._nepaliDate.engToNepDate(day , month, year);\r\n      this.currentDate = this._nepaliDate.nepToEngDate(\r\n        this.selectedDate.day,\r\n        this.selectedDate.year,\r\n        this.selectedDate.month,\r\n      );\r\n    }\r\n  }\r\n\r\n\r\n  selectMonthYear(month: number) {\r\n    this.selectedDate = { ...this.currentNepaliDate, month };\r\n    this.formatMonthValue();\r\n    this.close();\r\n    this.propagateChange(this.selectedDate);\r\n  }\r\n\r\n  prevMonth() {\r\n    if (this.currentNepaliDate.month <= 0) {\r\n      this.currentNepaliDate.month = 11;\r\n      this.currentNepaliDate.year--;\r\n    } else {\r\n      this.currentNepaliDate.month--;\r\n    }\r\n\r\n    const newNepaliDate = {\r\n      day: this.currentNepaliDate.day,\r\n      month: this.currentNepaliDate.month,\r\n      year: this.currentNepaliDate.year,\r\n    };\r\n    this.currentDate = this._nepaliDate.nepToEngDate(\r\n      newNepaliDate.day,\r\n      newNepaliDate.month,\r\n      newNepaliDate.year\r\n    );\r\n\r\n\r\n  }\r\n\r\n  nextMonth() {\r\n    if (this.currentNepaliDate.month >= 11) {\r\n      this.currentNepaliDate.month = 0;\r\n      this.currentNepaliDate.year++;\r\n    } else {\r\n      this.currentNepaliDate.month++;\r\n    }\r\n\r\n    const newDate = {\r\n      day: this.currentNepaliDate.day,\r\n      month: this.currentNepaliDate.month,\r\n      year: this.currentNepaliDate.year,\r\n    };\r\n    this.currentDate = this._nepaliDate.nepToEngDate(\r\n      newDate.day,\r\n      newDate.month,\r\n      newDate.year\r\n    );\r\n\r\n  }\r\n\r\n\r\n  prevYear() {\r\n    if (this.currentNepaliDate.year <= 2001) {\r\n      this.currentNepaliDate.year = 2001;\r\n    } else {\r\n      this.currentNepaliDate.year--;\r\n    }\r\n\r\n    const newNepaliDate = {\r\n      day: this.currentNepaliDate.day,\r\n      month: this.currentNepaliDate.month,\r\n      year: this.currentNepaliDate.year,\r\n    };\r\n    this.currentDate = this._nepaliDate.nepToEngDate(\r\n      newNepaliDate.day,\r\n      newNepaliDate.month,\r\n      newNepaliDate.year\r\n    );\r\n\r\n\r\n  }\r\n\r\n  nextYear() {\r\n    if (this.currentNepaliDate.month >= 2099) {\r\n      this.currentNepaliDate.year = 2099;\r\n    } else {\r\n      this.currentNepaliDate.year++;\r\n    }\r\n\r\n    const newDate = {\r\n      day: this.currentNepaliDate.day,\r\n      month: this.currentNepaliDate.month,\r\n      year: this.currentNepaliDate.year,\r\n    };\r\n    this.currentDate = this._nepaliDate.nepToEngDate(\r\n      newDate.day,\r\n      newDate.month,\r\n      newDate.year\r\n    );\r\n\r\n  }\r\n  prevYearRange(){\r\n    let start = this.ysStartYear - 20\r\n    this.ysEndYear =  this.ysEndYear - 20;\r\n\r\n    if (start <= 2001) {\r\n      this.ysStartYear = 2001;\r\n      this.ysEndYear =  2001 + 19;\r\n    } else {\r\n      this.ysStartYear = start;\r\n    }\r\n\r\n    this.populateYears();\r\n  }\r\n\r\n  nextYearRange(){\r\n    let start = this.ysStartYear + 20\r\n    let end =  this.ysEndYear + 20;\r\n\r\n    if (end >=  2099) {\r\n      this.ysEndYear = 2099;\r\n      this.ysStartYear =  2099 - 19;\r\n    } else {\r\n      this.ysStartYear = start;\r\n      this.ysEndYear = end;\r\n    }\r\n    this.populateYears();\r\n  }\r\n\r\n  toggleOpen() {\r\n    if (!this.alwaysVisible) {\r\n      this.isOpen = !this.isOpen;\r\n    }\r\n  }\r\n\r\n  open() {\r\n    this.isOpen = true;\r\n  }\r\n\r\n  close() {\r\n    this.isOpen = false;\r\n    //this.setCurrentDate();\r\n  }\r\n\r\n  gotoYearSelector(){\r\n    this.yearSelector = true;\r\n    this.monthSelector = false;\r\n  }\r\n  gotoMonthSelector(){\r\n    this.yearSelector = false;\r\n    this.monthSelector = true;\r\n  }\r\n}\r\n","<div class=\"nepali-month-picker\" [ngClass]=\"theme\">\r\n  <input\r\n    class=\"np_mpicker_input\"\r\n    type=\"text\"\r\n    [value]=\"formattedDate\"\r\n    (focus)=\"open()\"\r\n    (keydown)=\"$event.preventDefault()\"\r\n    aria-hidden=\"true\"\r\n    placeholder=\"yyyy/mm\"\r\n  />\r\n\r\n  <a\r\n    class=\"form-icon\"\r\n    (click)=\"toggleOpen()\"\r\n    [ngClass]=\"isOpen ? 'active' : ''\"\r\n  >\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\r\n      <path\r\n        d=\"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z\"\r\n      />\r\n    </svg>\r\n  </a>\r\n  <ng-container [ngTemplateOutlet]=\"dp\" *ngIf=\"isOpen\"></ng-container>\r\n</div>\r\n<!--.nepali-date-picker-->\r\n\r\n<ng-template #dp>\r\n  <!--#MonthPicker START-->\r\n  <div\r\n    id=\"month-picker\"\r\n    class=\"mpicker__container month_selector\"\r\n    [class.hide]=\"!monthSelector\"\r\n  >\r\n    <div class=\"mpicker__options-container\">\r\n      <a class=\"prev-month\" (click)=\"prevYear()\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n          <path\r\n            d=\"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z\"\r\n          />\r\n        </svg>\r\n      </a>\r\n      <span class=\"np-mpicker-header__value\">\r\n        <a (click)=\"gotoYearSelector()\">\r\n          {{ currentNepaliDate?.year }}\r\n        </a>\r\n      </span>\r\n\r\n      <a class=\"next-month\" (click)=\"nextYear()\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n          <path\r\n            d=\"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z\"\r\n          />\r\n        </svg>\r\n      </a>\r\n    </div>\r\n\r\n    <div class=\"mpicker__months-container\">\r\n      <div\r\n        *ngFor=\"\r\n          let month of monthsMapping[language][monthDisplayType];\r\n          index as i\r\n        \"\r\n        class=\"mpicker-month\"\r\n      >\r\n        <button\r\n          (click)=\"selectMonthYear(i)\"\r\n          [class.selected-month]=\"\r\n            i == selectedDate?.month &&\r\n            selectedDate.year === currentNepaliDate.year\r\n          \"\r\n          [class.current-month]=\"\r\n            i === nepaliDateToday.month &&\r\n            currentNepaliDate.year === nepaliDateToday.year\r\n          \"\r\n        >\r\n          {{ month }}\r\n        </button>\r\n      </div>\r\n    </div>\r\n    <!--.datepicker__months-container ends-->\r\n  </div>\r\n  <!--.datepicker__container ends-->\r\n\r\n  <!--#YearPicker START-->\r\n  <div\r\n    id=\"year-picker\"\r\n    class=\"mpicker__container year_selector\"\r\n    [class.hide]=\"monthSelector\"\r\n  >\r\n    <div class=\"mpicker__options-container\">\r\n      <a class=\"prev-month\" (click)=\"prevYearRange()\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n          <path\r\n            d=\"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z\"\r\n          />\r\n        </svg>\r\n      </a>\r\n      <span class=\"np-mpicker-header__value\">\r\n        <a (click)=\"gotoMonthSelector()\">\r\n          {{ this.ysStartYear }} - {{ this.ysEndYear }}\r\n        </a>\r\n      </span>\r\n\r\n      <a class=\"next-month\" (click)=\"nextYearRange()\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\r\n          <path\r\n            d=\"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z\"\r\n          />\r\n        </svg>\r\n      </a>\r\n    </div>\r\n\r\n    <div class=\"mpicker__months-container\">\r\n      <div *ngFor=\"let year of years; index as i\" class=\"mpicker-month\">\r\n        <button\r\n          (click)=\"selectYear(i)\"\r\n          [class.selected-month]=\"ysStartYear + i == selectedDate?.year\"\r\n          [class.current-month]=\"ysStartYear + i === nepaliDateToday.year\"\r\n        >\r\n          {{ year | toNp: language:\"number\" }}\r\n        </button>\r\n      </div>\r\n    </div>\r\n    <!--.datepicker__months-container ends-->\r\n  </div>\r\n  <!--.datepicker__container ends-->\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NpMPickerComponent } from './np-mpicker.component';\r\nimport { ToNpPipe } from './to-np.pipe';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ToNpPipe,\r\n    NpMPickerComponent\r\n  ],\r\n  imports: [\r\n    BrowserModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    NpMPickerComponent\r\n  ]\r\n})\r\nexport class NepaliMPickerModule { }\r\n","/*\r\n * Public API Surface of npx-np-datepicker\r\n */\r\n\r\nexport * from './lib/np-mpicker.service';\r\nexport * from './lib/np-mpicker.component';\r\nexport * from './lib/np-mpicker.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NpMPickerService","i3.ToNpPipe"],"mappings":";;;;;;MAKa,gBAAgB,CAAA;AAqH3B,IAAA,WAAA,GAAA;QApHA,IAAa,CAAA,aAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,IAAiB,CAAA,iBAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACrE,QAAA,IAAA,CAAA,YAAY,GAAG;YACb,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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"}