ngx-np-datepicker 1.0.0

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 ADDED
@@ -0,0 +1,24 @@
1
+ # NpxNpDatepicker
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.1.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project npx-np-datepicker` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project npx-np-datepicker`.
8
+ > Note: Don't forget to add `--project npx-np-datepicker` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build npx-np-datepicker` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build npx-np-datepicker`, go to the dist folder `cd dist/npx-np-datepicker` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test npx-np-datepicker` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,40 @@
1
+ export const numberMapping = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];
2
+ export const wordsMapping = {
3
+ year: 'साल',
4
+ month: 'महिना'
5
+ };
6
+ export const daysMapping = {
7
+ en: {
8
+ default: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
9
+ short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
10
+ },
11
+ ne: {
12
+ default: ['आइत', 'सोम', 'मंगल्', 'बुध', 'बिही', 'शुक्र', 'शनि'],
13
+ short: ['आ', 'सो', 'मं', 'बु', 'बि', 'शु', 'श']
14
+ }
15
+ };
16
+ export const monthsMapping = {
17
+ en: {
18
+ default: [
19
+ 'Baisakh', 'Jestha', 'Asadh', 'Shrawan', 'Bhadra', 'Ashwin', 'Kartik', 'Mangsir', 'Poush', 'Marga', 'Falgun', 'Chaitra'
20
+ ],
21
+ modern: [
22
+ 'Baisakh', 'Jeth', 'Asaar', 'Saawn', 'Bhadau', 'Aashoj', 'Kartik', 'Mangsir', 'Push', 'Magh', 'Fagun', 'Chait'
23
+ ],
24
+ short: [
25
+ 'Bai', 'Jes', 'Asa', 'Shr', 'Bha', 'Ash', 'Kar', 'Man', 'Pou', 'Mar', 'Fal', 'Cha'
26
+ ]
27
+ },
28
+ ne: {
29
+ default: [
30
+ 'बैशाख', 'जेष्ठ', 'आषाढ', 'श्रवण', 'भाद्र', 'आश्विन', 'कार्तिक', 'मंसिर', 'पौष', 'मार्ग', 'फाल्गुन', 'चैत्र'
31
+ ],
32
+ modern: [
33
+ 'बैशाख', 'जेठ', 'असार', 'साउन', 'भदौ', 'अशोज', 'कार्तिक', 'मंसिर', 'पुष', 'माघ', 'फागुन', 'चैत'
34
+ ],
35
+ short: [
36
+ 'बै', 'जे', 'अ', 'श्रा', 'भा', 'आ', 'का', 'मं', 'पौ', 'मा', 'फा', 'चै'
37
+ ]
38
+ }
39
+ };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25weC1ucC1kYXRlcGlja2VyL3NyYy9saWIvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWlCO0lBQ3hDLElBQUksRUFBRSxLQUFLO0lBQ1gsS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFnQjtJQUN0QyxFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDMUQsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0tBQ2xEO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQy9ELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztLQUNoRDtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWlCO0lBQ3pDLEVBQUUsRUFBRTtRQUNGLE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUztTQUN4SDtRQUNELE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTztTQUMvRztRQUNELEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSztTQUNuRjtLQUNGO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPO1NBQzdHO1FBQ0QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLO1NBQ2hHO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1NBQ3ZFO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9udGhNYXBwaW5nLCBEYXlzTWFwcGluZywgV29yZHNNYXBwaW5nIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBudW1iZXJNYXBwaW5nOiBzdHJpbmdbXSA9IFsn4KWmJywgJ+ClpycsICfgpagnLCAn4KWpJywgJ+ClqicsICfgpasnLCAn4KWsJywgJ+ClrScsICfgpa4nLCAn4KWvJ107XG5cbmV4cG9ydCBjb25zdCB3b3Jkc01hcHBpbmc6IFdvcmRzTWFwcGluZyA9IHtcbiAgeWVhcjogJ+CkuOCkvuCksicsXG4gIG1vbnRoOiAn4KSu4KS54KS/4KSo4KS+J1xufTtcblxuZXhwb3J0IGNvbnN0IGRheXNNYXBwaW5nOiBEYXlzTWFwcGluZyA9IHtcbiAgZW46IHtcbiAgICBkZWZhdWx0OiBbJ1N1bicsICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCddLFxuICAgIHNob3J0OiBbJ1N1JywgJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJ11cbiAgfSxcbiAgbmU6IHtcbiAgICBkZWZhdWx0OiBbJ+CkhuCkh+CkpCcsICfgpLjgpYvgpK4nLCAn4KSu4KSC4KSX4KSy4KWNJywgJ+CkrOClgeCkpycsICfgpKzgpL/gpLngpYAnLCAn4KS24KWB4KSV4KWN4KSwJywgJ+CktuCkqOCkvyddLFxuICAgIHNob3J0OiBbJ+CkhicsICfgpLjgpYsnLCAn4KSu4KSCJywgJ+CkrOClgScsICfgpKzgpL8nLCAn4KS24KWBJywgJ+CktiddXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBtb250aHNNYXBwaW5nOiBNb250aE1hcHBpbmcgPSB7XG4gIGVuOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAgJ0JhaXNha2gnLCAnSmVzdGhhJywgJ0FzYWRoJywgJ1NocmF3YW4nLCAnQmhhZHJhJywgJ0FzaHdpbicsICdLYXJ0aWsnLCAnTWFuZ3NpcicsICdQb3VzaCcsICdNYXJnYScsICdGYWxndW4nLCAnQ2hhaXRyYSdcbiAgICBdLFxuICAgIG1vZGVybjogW1xuICAgICAgJ0JhaXNha2gnLCAnSmV0aCcsICdBc2FhcicsICdTYWF3bicsICdCaGFkYXUnLCAnQWFzaG9qJywgJ0thcnRpaycsICdNYW5nc2lyJywgJ1B1c2gnLCAnTWFnaCcsICdGYWd1bicsICdDaGFpdCdcbiAgICBdLFxuICAgIHNob3J0OiBbXG4gICAgICAnQmFpJywgJ0plcycsICdBc2EnLCAnU2hyJywgJ0JoYScsICdBc2gnLCAnS2FyJywgJ01hbicsICdQb3UnLCAnTWFyJywgJ0ZhbCcsICdDaGEnXG4gICAgXVxuICB9LFxuICBuZToge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgICfgpKzgpYjgpLbgpL7gpJYnLCAn4KSc4KWH4KS34KWN4KSgJywgJ+CkhuCkt+CkvuCkoicsICfgpLbgpY3gpLDgpLXgpKMnLCAn4KSt4KS+4KSm4KWN4KSwJywgJ+CkhuCktuCljeCkteCkv+CkqCcsICfgpJXgpL7gpLDgpY3gpKTgpL/gpJUnLCAn4KSu4KSC4KS44KS/4KSwJywgJ+CkquCljOCktycsICfgpK7gpL7gpLDgpY3gpJcnLCAn4KSr4KS+4KSy4KWN4KSX4KWB4KSoJywgJ+CkmuCliOCkpOCljeCksCdcbiAgICBdLFxuICAgIG1vZGVybjogW1xuICAgICAgJ+CkrOCliOCktuCkvuCklicsICfgpJzgpYfgpKAnLCAn4KSF4KS44KS+4KSwJywgJ+CkuOCkvuCkieCkqCcsICfgpK3gpKbgpYwnLCAn4KSF4KS24KWL4KScJywgJ+CkleCkvuCksOCljeCkpOCkv+CklScsICfgpK7gpILgpLjgpL/gpLAnLCAn4KSq4KWB4KS3JywgJ+CkruCkvuCkmCcsICfgpKvgpL7gpJfgpYHgpKgnLCAn4KSa4KWI4KSkJ1xuICAgIF0sXG4gICAgc2hvcnQ6IFtcbiAgICAgICfgpKzgpYgnLCAn4KSc4KWHJywgJ+CkhScsICfgpLbgpY3gpLDgpL4nLCAn4KSt4KS+JywgJ+CkhicsICfgpJXgpL4nLCAn4KSu4KSCJywgJ+CkquCljCcsICfgpK7gpL4nLCAn4KSr4KS+JywgJ+CkmuCliCdcbiAgICBdXG4gIH1cbn07XG4iXX0=
@@ -0,0 +1,211 @@
1
+ import { Component, HostListener, Input, forwardRef, ViewEncapsulation } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { daysMapping, monthsMapping } from './mapping';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./np-datepicker.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "./to-np.pipe";
9
+ export class NpDatePickerComponent {
10
+ constructor(_nepaliDate, eRef) {
11
+ this._nepaliDate = _nepaliDate;
12
+ this.eRef = eRef;
13
+ this.nepaliDateToday = { day: 0, month: 0, year: 0 };
14
+ this.currentNepaliDate = { day: 0, month: 0, year: 0 };
15
+ this.formattedDate = '';
16
+ this.years = [];
17
+ this.daysMapping = daysMapping;
18
+ this.monthsMapping = monthsMapping;
19
+ this.isOpen = false;
20
+ this.hideInput = false;
21
+ this.alwaysVisible = false;
22
+ this.language = 'ne';
23
+ this.monthDisplayType = 'modern';
24
+ this.dayDisplayType = 'short';
25
+ this.dateFormatter = (selectedDate) => {
26
+ const dd = selectedDate.day < 10 ? '0' + selectedDate.day : selectedDate.day;
27
+ const mm = selectedDate.month < 10 ? '0' + selectedDate.month : selectedDate.month;
28
+ return `${dd}/${mm}/${this.selectedDate.year}`;
29
+ };
30
+ this.propagateChange = (_) => { };
31
+ this.propagateTouch = (_) => { };
32
+ this.currentDate = new Date();
33
+ }
34
+ clickout(event) {
35
+ if (!this.eRef.nativeElement.contains(event.target)) {
36
+ this.close();
37
+ }
38
+ }
39
+ ngOnInit() {
40
+ this.nepaliDateToday = this._nepaliDate.setCurrentNepaliDate();
41
+ this.setCurrentDate();
42
+ this.populateYears();
43
+ this.setCurrentMonthData();
44
+ this.selectDate(this.currentNepaliDate.day);
45
+ }
46
+ populateYears() {
47
+ for (let i = 2001; i <= 2099; i++) {
48
+ this.years.push(i);
49
+ }
50
+ }
51
+ selectYear(e) {
52
+ this.currentNepaliDate.year = e.target.value;
53
+ const newDate = {
54
+ day: this.currentNepaliDate.day,
55
+ month: this.currentNepaliDate.month,
56
+ year: this.currentNepaliDate.year,
57
+ };
58
+ this.currentDate = this._nepaliDate.nepToEngDate(newDate.day, newDate.month + 1, newDate.year);
59
+ this.setCurrentMonthData();
60
+ }
61
+ selectMonth(e) {
62
+ let month = e.target.value;
63
+ let temp_nep_month = this.monthsMapping[this.language][this.monthDisplayType]?.indexOf(month) ?? 0;
64
+ this.currentNepaliDate.month = temp_nep_month;
65
+ const newDate = {
66
+ day: this.currentNepaliDate.day,
67
+ month: this.currentNepaliDate.month,
68
+ year: this.currentNepaliDate.year,
69
+ };
70
+ this.currentDate = this._nepaliDate.nepToEngDate(newDate.day, newDate.month + 1, newDate.year);
71
+ this.setCurrentMonthData();
72
+ }
73
+ resetCurrentMonthData() {
74
+ this.currentMonthData = {
75
+ 0: [],
76
+ 1: [],
77
+ 2: [],
78
+ 3: [],
79
+ 4: [],
80
+ 5: [],
81
+ 6: [],
82
+ };
83
+ }
84
+ formatValue() {
85
+ if (this.selectedDate) {
86
+ this.formattedDate = this.dateFormatter(this.selectedDate);
87
+ }
88
+ }
89
+ writeValue(value) {
90
+ if (value) {
91
+ this.selectedDate = value;
92
+ this.currentNepaliDate = value;
93
+ this.formatValue();
94
+ }
95
+ }
96
+ registerOnTouched() { }
97
+ registerOnChange(fn) {
98
+ this.propagateChange = fn;
99
+ }
100
+ setCurrentDate() {
101
+ if (!this.selectedDate) {
102
+ this.currentNepaliDate = this._nepaliDate.engToNepDate(this.currentDate.getDate(), this.currentDate.getMonth(), this.currentDate.getFullYear());
103
+ }
104
+ else {
105
+ const { day, month, year } = this.selectedDate;
106
+ this.currentNepaliDate = this._nepaliDate.engToNepDate(day, month, year);
107
+ this.currentDate = this._nepaliDate.nepToEngDate(this.selectedDate.year, this.selectedDate.month, this.selectedDate.day);
108
+ }
109
+ }
110
+ setCurrentMonthData() {
111
+ this.resetCurrentMonthData();
112
+ // fill the currentMonthData with current date
113
+ let day = this.currentDate.getDay();
114
+ this.currentMonthData[day] = [this.currentNepaliDate.day];
115
+ // fill the currentMonthData with day before the current date
116
+ this.setMonthDataBefore(day - 1, this.currentNepaliDate.day - 1);
117
+ var currentMonthMaxValue = this._nepaliDate.nepaliMonths[this.currentNepaliDate.year - 2000][this.currentNepaliDate.month];
118
+ // fill the currentMonthData with day after the current date
119
+ this.setMonthDataAfter(day + 1, this.currentNepaliDate.day + 1, currentMonthMaxValue);
120
+ // we need some empty spaces in place so that the dates are shown in correct order
121
+ // eg if the 1st day starts on monday then we need 1 empty space for non existingn date on Sunday
122
+ this.createEmptySpaces();
123
+ }
124
+ setMonthDataBefore(day, date) {
125
+ if (date >= 1) {
126
+ if (day < 0) {
127
+ day = 6;
128
+ }
129
+ this.currentMonthData[day] = [date, ...this.currentMonthData[day]];
130
+ this.setMonthDataBefore(--day, --date);
131
+ }
132
+ }
133
+ setMonthDataAfter(day, date, currentMonthMaxValue) {
134
+ const nepaliDate = {
135
+ day: date,
136
+ month: this.currentNepaliDate.month,
137
+ year: this.currentNepaliDate.year,
138
+ };
139
+ // only add the data if the current month matches
140
+ if (date <= currentMonthMaxValue) {
141
+ if (day > 6) {
142
+ day = 0;
143
+ }
144
+ this.currentMonthData[day] = [...this.currentMonthData[day], date];
145
+ this.setMonthDataAfter(++day, ++date, currentMonthMaxValue);
146
+ }
147
+ }
148
+ createEmptySpaces() {
149
+ // first find out which day has the 1st
150
+ // if its a Sunday, then don't do anything else add 1 space on each previous day
151
+ let dayIndex = 0;
152
+ let value;
153
+ Object.values(this.currentMonthData).map((item, index) => {
154
+ value = item;
155
+ if (value.includes(1)) {
156
+ dayIndex = index;
157
+ }
158
+ return value.includes(1);
159
+ });
160
+ if (dayIndex) {
161
+ for (dayIndex; dayIndex > 0; dayIndex--) {
162
+ const monthData = this.currentMonthData[dayIndex - 1];
163
+ this.currentMonthData[dayIndex - 1] = [null, ...monthData];
164
+ }
165
+ }
166
+ }
167
+ selectDate(day) {
168
+ this.selectedDate = { ...this.currentNepaliDate, day };
169
+ this.formatValue();
170
+ this.close();
171
+ this.propagateChange(this.selectedDate);
172
+ }
173
+ toggleOpen() {
174
+ if (!this.alwaysVisible) {
175
+ this.isOpen = !this.isOpen;
176
+ }
177
+ }
178
+ open() {
179
+ this.isOpen = true;
180
+ }
181
+ close() {
182
+ this.isOpen = false;
183
+ //this.setCurrentDate();
184
+ }
185
+ }
186
+ NpDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NpDatePickerComponent, deps: [{ token: i1.NpDatePickerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
187
+ NpDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: NpDatePickerComponent, selector: "np-datepicker", inputs: { language: "language", monthDisplayType: "monthDisplayType" }, host: { listeners: { "document:click": "clickout($event)" } }, providers: [
188
+ {
189
+ provide: NG_VALUE_ACCESSOR,
190
+ useExisting: forwardRef(() => NpDatePickerComponent),
191
+ multi: true
192
+ }
193
+ ], ngImport: i0, template: "<div class=\"nepali-date-picker\">\n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n [ngClass]=\"inputClass\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a (click)=\"toggleOpen()\" [ngClass]=\"(isOpen)? 'active':''\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n <path\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\"\n />\n </svg>\n </a>\n <ng-container [ngTemplateOutlet]=\"dp\" *ngIf=\"isOpen\"></ng-container>\n</div>\n<!--.nepali-date-picker-->\n\n<ng-template #dp>\n <div class=\"datepicker__container\">\n <div class=\"datepicker__options-container\">\n <span class=\"datepicker__options-year-container\">\n <span> {{ \"Year\" | toNp: language:\"word\" }}: </span>\n <select (change)=\"selectYear($event)\">\n <option\n *ngFor=\"let year of years; index as i\"\n [value]=\"year\"\n [selected]=\"year == currentNepaliDate?.year\"\n >\n {{ year | toNp: language:\"number\" }}\n </option>\n </select>\n </span>\n <span class=\"datepicker__options-month-container\">\n <span>{{ \"Month\" | toNp: language:\"word\" }}: </span>\n <select (change)=\"selectMonth($event)\">\n <option\n *ngFor=\"\n let month of monthsMapping[language][monthDisplayType];\n index as i\n \"\n [value]=\"month\"\n [selected]=\"i === currentNepaliDate?.month\"\n >\n {{ month }}\n </option>\n </select>\n </span>\n </div>\n <div class=\"datepicker__days-container\">\n <div\n class=\"datepicker__days\"\n *ngFor=\"let day of daysMapping[language][dayDisplayType]; index as i\"\n >\n <div class=\"datepicker__weekday\">{{ day }}</div>\n <div\n class=\"datepicker__date-container\"\n *ngFor=\"let date of currentMonthData[i]\"\n >\n <div\n *ngIf=\"date\"\n class=\"datepicker__date\"\n [class.datepicker__date--active]=\"\n date === selectedDate?.day &&\n currentNepaliDate.month === selectedDate?.month &&\n currentNepaliDate.year === selectedDate?.year\n \"\n [class.datepicker__date--current-day]=\"\n date === nepaliDateToday.day &&\n currentNepaliDate.month === nepaliDateToday.month &&\n currentNepaliDate.year === nepaliDateToday.year\n \"\n (click)=\"selectDate(date)\"\n >\n {{ date | toNp: language:\"number\" }}\n </div>\n <div *ngIf=\"!date\" class=\"datepicker__date--disabled\">\n <span>&nbsp;</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".nepali-date-picker{position:relative;display:inline-block}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:292px;box-shadow:#64646f33 0 7px 29px;position:absolute}.datepicker__options-container{padding:18px 20px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff}.datepicker__days-container{display:flex;justify-content:space-evenly;color:#777}.datepicker__days{text-align:center;border:1px solid #eee}.datepicker__weekday{padding:10px;background-color:#eee;margin-bottom:1px;font-weight:700}.datepicker__date-container{width:40px;height:40px;line-height:40px;border-bottom:1px solid #eee}.datepicker__date{cursor:pointer}.datepicker__date:hover{background-color:#eee}.datepicker__date--active.datepicker__date--active{background-color:#e45415;color:#fff}.datepicker__options-container span{font-size:14px}select:focus,select:focus-visible{outline:1px solid #fff}select{border:none;color:#fff;background:none;font-size:16px}select option{color:#333}.np_datepicker_input{border:1px solid #eee;padding:10px;font-size:16px;color:#777}.np_datepicker_input:focus-visible{outline:2px solid #e45415}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "toNp": i4.ToNpPipe }, encapsulation: i0.ViewEncapsulation.None });
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NpDatePickerComponent, decorators: [{
195
+ type: Component,
196
+ args: [{ selector: 'np-datepicker', providers: [
197
+ {
198
+ provide: NG_VALUE_ACCESSOR,
199
+ useExisting: forwardRef(() => NpDatePickerComponent),
200
+ multi: true
201
+ }
202
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"nepali-date-picker\">\n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n [ngClass]=\"inputClass\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a (click)=\"toggleOpen()\" [ngClass]=\"(isOpen)? 'active':''\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n <path\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\"\n />\n </svg>\n </a>\n <ng-container [ngTemplateOutlet]=\"dp\" *ngIf=\"isOpen\"></ng-container>\n</div>\n<!--.nepali-date-picker-->\n\n<ng-template #dp>\n <div class=\"datepicker__container\">\n <div class=\"datepicker__options-container\">\n <span class=\"datepicker__options-year-container\">\n <span> {{ \"Year\" | toNp: language:\"word\" }}: </span>\n <select (change)=\"selectYear($event)\">\n <option\n *ngFor=\"let year of years; index as i\"\n [value]=\"year\"\n [selected]=\"year == currentNepaliDate?.year\"\n >\n {{ year | toNp: language:\"number\" }}\n </option>\n </select>\n </span>\n <span class=\"datepicker__options-month-container\">\n <span>{{ \"Month\" | toNp: language:\"word\" }}: </span>\n <select (change)=\"selectMonth($event)\">\n <option\n *ngFor=\"\n let month of monthsMapping[language][monthDisplayType];\n index as i\n \"\n [value]=\"month\"\n [selected]=\"i === currentNepaliDate?.month\"\n >\n {{ month }}\n </option>\n </select>\n </span>\n </div>\n <div class=\"datepicker__days-container\">\n <div\n class=\"datepicker__days\"\n *ngFor=\"let day of daysMapping[language][dayDisplayType]; index as i\"\n >\n <div class=\"datepicker__weekday\">{{ day }}</div>\n <div\n class=\"datepicker__date-container\"\n *ngFor=\"let date of currentMonthData[i]\"\n >\n <div\n *ngIf=\"date\"\n class=\"datepicker__date\"\n [class.datepicker__date--active]=\"\n date === selectedDate?.day &&\n currentNepaliDate.month === selectedDate?.month &&\n currentNepaliDate.year === selectedDate?.year\n \"\n [class.datepicker__date--current-day]=\"\n date === nepaliDateToday.day &&\n currentNepaliDate.month === nepaliDateToday.month &&\n currentNepaliDate.year === nepaliDateToday.year\n \"\n (click)=\"selectDate(date)\"\n >\n {{ date | toNp: language:\"number\" }}\n </div>\n <div *ngIf=\"!date\" class=\"datepicker__date--disabled\">\n <span>&nbsp;</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".nepali-date-picker{position:relative;display:inline-block}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:292px;box-shadow:#64646f33 0 7px 29px;position:absolute}.datepicker__options-container{padding:18px 20px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff}.datepicker__days-container{display:flex;justify-content:space-evenly;color:#777}.datepicker__days{text-align:center;border:1px solid #eee}.datepicker__weekday{padding:10px;background-color:#eee;margin-bottom:1px;font-weight:700}.datepicker__date-container{width:40px;height:40px;line-height:40px;border-bottom:1px solid #eee}.datepicker__date{cursor:pointer}.datepicker__date:hover{background-color:#eee}.datepicker__date--active.datepicker__date--active{background-color:#e45415;color:#fff}.datepicker__options-container span{font-size:14px}select:focus,select:focus-visible{outline:1px solid #fff}select{border:none;color:#fff;background:none;font-size:16px}select option{color:#333}.np_datepicker_input{border:1px solid #eee;padding:10px;font-size:16px;color:#777}.np_datepicker_input:focus-visible{outline:2px solid #e45415}\n"] }]
203
+ }], ctorParameters: function () { return [{ type: i1.NpDatePickerService }, { type: i0.ElementRef }]; }, propDecorators: { language: [{
204
+ type: Input
205
+ }], monthDisplayType: [{
206
+ type: Input
207
+ }], clickout: [{
208
+ type: HostListener,
209
+ args: ['document:click', ['$event']]
210
+ }] } });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnAtZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ucHgtbnAtZGF0ZXBpY2tlci9zcmMvbGliL25wLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbnB4LW5wLWRhdGVwaWNrZXIvc3JjL2xpYi9ucC1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixLQUFLLEVBQ0wsVUFBVSxFQUNWLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztBQWV2RCxNQUFNLE9BQU8scUJBQXFCO0lBK0NoQyxZQUNTLFdBQWdDLEVBQy9CLElBQWdCO1FBRGpCLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBaEQxQixvQkFBZSxHQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxzQkFBaUIsR0FBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFOUQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFLbkIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUlyQixnQkFBVyxHQUFnQixXQUFXLENBQUM7UUFFdkMsa0JBQWEsR0FBaUIsYUFBYSxDQUFDO1FBRTVDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGtCQUFhLEdBQUcs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biAgT25Jbml0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOcERhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9ucC1kYXRlcGlja2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIE5lcGFsaURhdGUsXHJcbiAgTW9udGhEYXRhLFxyXG4gIERheXNNYXBwaW5nLFxyXG4gIE1vbnRoTWFwcGluZyxcclxuICBEYXRlRm9ybWF0dGVyLFxyXG59IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBkYXlzTWFwcGluZywgbW9udGhzTWFwcGluZyB9IGZyb20gJy4vbWFwcGluZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25wLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ucC1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbnAtZGF0ZS1waWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnBEYXRlUGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIE5wRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIG5lcGFsaURhdGVUb2RheTogTmVwYWxpRGF0ZSA9IHsgZGF5OiAwLCBtb250aDogMCwgeWVhcjogMCB9O1xyXG4gIGN1cnJlbnROZXBhbGlEYXRlOiBOZXBhbGlEYXRlID0geyBkYXk6IDAsIG1vbnRoOiAwLCB5ZWFyOiAwIH07XHJcbiAgc2VsZWN0ZWREYXRlITogTmVwYWxpRGF0ZTtcclxuICBmb3JtYXR0ZWREYXRlID0gJyc7XHJcbiAgY3VycmVudERhdGU6IGFueTtcclxuXHJcbiAgZGlzcGxheURhdGUhOiBzdHJpbmc7XHJcblxyXG4gIHllYXJzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICBjdXJyZW50TW9udGhEYXRhITogYW55O1xyXG5cclxuICBkYXlzTWFwcGluZzogRGF5c01hcHBpbmcgPSBkYXlzTWFwcGluZztcclxuXHJcbiAgbW9udGhzTWFwcGluZzogTW9udGhNYXBwaW5nID0gbW9udGhzTWFwcGluZztcclxuXHJcbiAgaXNPcGVuID0gZmFsc2U7XHJcblxyXG4gIGhpZGVJbnB1dCA9IGZhbHNlO1xyXG5cclxuICBhbHdheXNWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGlucHV0Q2xhc3MhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbGFuZ3VhZ2U6ICdlbicgfCAnbmUnID0gJ25lJztcclxuICBASW5wdXQoKVxyXG4gIG1vbnRoRGlzcGxheVR5cGU6ICdkZWZhdWx0JyB8ICdtb2Rlcm4nIHwgJ3Nob3J0JyA9ICdtb2Rlcm4nO1xyXG4gIFxyXG4gIGRheURpc3BsYXlUeXBlOiAnZGVmYXVsdCcgfCAnc2hvcnQnID0gJ3Nob3J0JztcclxuXHJcbiAgZGF0ZUZvcm1hdHRlcjogRGF0ZUZvcm1hdHRlciA9IChzZWxlY3RlZERhdGU6IE5lcGFsaURhdGUpID0+IHtcclxuICAgIGNvbnN0IGRkID1cclxuICAgICAgc2VsZWN0ZWREYXRlLmRheSA8IDEwID8gJzAnICsgc2VsZWN0ZWREYXRlLmRheSA6IHNlbGVjdGVkRGF0ZS5kYXk7XHJcbiAgICBjb25zdCBtbSA9XHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5tb250aCA8IDEwID8gJzAnICsgc2VsZWN0ZWREYXRlLm1vbnRoIDogc2VsZWN0ZWREYXRlLm1vbnRoO1xyXG4gICAgcmV0dXJuIGAke2RkfS8ke21tfS8ke3RoaXMuc2VsZWN0ZWREYXRlLnllYXJ9YDtcclxuICB9O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgY2xpY2tvdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIF9uZXBhbGlEYXRlOiBOcERhdGVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5uZXBhbGlEYXRlVG9kYXkgPSB0aGlzLl9uZXBhbGlEYXRlLnNldEN1cnJlbnROZXBhbGlEYXRlKCk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnREYXRlKCk7XHJcbiAgICB0aGlzLnBvcHVsYXRlWWVhcnMoKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudE1vbnRoRGF0YSgpO1xyXG4gICAgdGhpcy5zZWxlY3REYXRlKHRoaXMuY3VycmVudE5lcGFsaURhdGUuZGF5KTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlWWVhcnMoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMjAwMTsgaSA8PSAyMDk5OyBpKyspIHtcclxuICAgICAgdGhpcy55ZWFycy5wdXNoKGkpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZWxlY3RZZWFyKGU6IGFueSkge1xyXG4gICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyID0gZS50YXJnZXQudmFsdWU7XHJcblxyXG4gICAgY29uc3QgbmV3RGF0ZSA9IHtcclxuICAgICAgZGF5OiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLmRheSxcclxuICAgICAgbW9udGg6IHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGgsXHJcbiAgICAgIHllYXI6IHRoaXMuY3VycmVudE5lcGFsaURhdGUueWVhcixcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHRoaXMuX25lcGFsaURhdGUubmVwVG9FbmdEYXRlKFxyXG4gICAgICBuZXdEYXRlLmRheSxcclxuICAgICAgbmV3RGF0ZS5tb250aCArIDEsXHJcbiAgICAgIG5ld0RhdGUueWVhclxyXG4gICAgKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudE1vbnRoRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0TW9udGgoZTogYW55KSB7XHJcbiAgICBsZXQgbW9udGggPSBlLnRhcmdldC52YWx1ZTtcclxuXHJcbiAgICBsZXQgdGVtcF9uZXBfbW9udGggPVxyXG4gICAgICB0aGlzLm1vbnRoc01hcHBpbmdbdGhpcy5sYW5ndWFnZV1bdGhpcy5tb250aERpc3BsYXlUeXBlXT8uaW5kZXhPZihcclxuICAgICAgICBtb250aFxyXG4gICAgICApID8/IDA7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCA9IHRlbXBfbmVwX21vbnRoO1xyXG5cclxuICAgIGNvbnN0IG5ld0RhdGUgPSB7XHJcbiAgICAgIGRheTogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXksXHJcbiAgICAgIG1vbnRoOiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoLFxyXG4gICAgICB5ZWFyOiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHRoaXMuX25lcGFsaURhdGUubmVwVG9FbmdEYXRlKFxyXG4gICAgICBuZXdEYXRlLmRheSxcclxuICAgICAgbmV3RGF0ZS5tb250aCArIDEsXHJcbiAgICAgIG5ld0RhdGUueWVhclxyXG4gICAgKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudE1vbnRoRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRDdXJyZW50TW9udGhEYXRhKCkge1xyXG4gICAgdGhpcy5jdXJyZW50TW9udGhEYXRhID0ge1xyXG4gICAgICAwOiBbXSxcclxuICAgICAgMTogW10sXHJcbiAgICAgIDI6IFtdLFxyXG4gICAgICAzOiBbXSxcclxuICAgICAgNDogW10sXHJcbiAgICAgIDU6IFtdLFxyXG4gICAgICA2OiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBmb3JtYXRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLmZvcm1hdHRlZERhdGUgPSB0aGlzLmRhdGVGb3JtYXR0ZXIodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge307XHJcblxyXG4gIHByb3BhZ2F0ZVRvdWNoID0gKF86IGFueSkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoKSB7fVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50RGF0ZSgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZSA9IHRoaXMuX25lcGFsaURhdGUuZW5nVG9OZXBEYXRlKFxyXG4gICAgICAgIHRoaXMuY3VycmVudERhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIHRoaXMuY3VycmVudERhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICB0aGlzLmN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKClcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgZGF5LCBtb250aCwgeWVhciB9ID0gdGhpcy5zZWxlY3RlZERhdGU7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUgPSB0aGlzLl9uZXBhbGlEYXRlLmVuZ1RvTmVwRGF0ZShkYXksIG1vbnRoLCB5ZWFyKTtcclxuICAgICAgdGhpcy5jdXJyZW50RGF0ZSA9IHRoaXMuX25lcGFsaURhdGUubmVwVG9FbmdEYXRlKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnllYXIsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubW9udGgsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUuZGF5XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50TW9udGhEYXRhKCkge1xyXG4gICAgdGhpcy5yZXNldEN1cnJlbnRNb250aERhdGEoKTtcclxuXHJcbiAgICAvLyBmaWxsIHRoZSBjdXJyZW50TW9udGhEYXRhIHdpdGggY3VycmVudCBkYXRlXHJcbiAgICBsZXQgZGF5ID0gdGhpcy5jdXJyZW50RGF0ZS5nZXREYXkoKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XSA9IFt0aGlzLmN1cnJlbnROZXBhbGlEYXRlLmRheV07XHJcblxyXG4gICAgLy8gZmlsbCB0aGUgY3VycmVudE1vbnRoRGF0YSB3aXRoIGRheSBiZWZvcmUgdGhlIGN1cnJlbnQgZGF0ZVxyXG4gICAgdGhpcy5zZXRNb250aERhdGFCZWZvcmUoZGF5IC0gMSwgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXkgLSAxKTtcclxuXHJcbiAgICB2YXIgY3VycmVudE1vbnRoTWF4VmFsdWUgPVxyXG4gICAgICB0aGlzLl9uZXBhbGlEYXRlLm5lcGFsaU1vbnRoc1t0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXIgLSAyMDAwXVtcclxuICAgICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoXHJcbiAgICAgIF07XHJcblxyXG4gICAgLy8gZmlsbCB0aGUgY3VycmVudE1vbnRoRGF0YSB3aXRoIGRheSBhZnRlciB0aGUgY3VycmVudCBkYXRlXHJcbiAgICB0aGlzLnNldE1vbnRoRGF0YUFmdGVyKFxyXG4gICAgICBkYXkgKyAxLFxyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLmRheSArIDEsXHJcbiAgICAgIGN1cnJlbnRNb250aE1heFZhbHVlXHJcbiAgICApO1xyXG5cclxuICAgIC8vIHdlIG5lZWQgc29tZSBlbXB0eSBzcGFjZXMgaW4gcGxhY2Ugc28gdGhhdCB0aGUgZGF0ZXMgYXJlIHNob3duIGluIGNvcnJlY3Qgb3JkZXJcclxuICAgIC8vIGVnIGlmIHRoZSAxc3QgZGF5IHN0YXJ0cyBvbiBtb25kYXkgdGhlbiB3ZSBuZWVkIDEgZW1wdHkgc3BhY2UgZm9yIG5vbiBleGlzdGluZ24gZGF0ZSBvbiBTdW5kYXlcclxuICAgIHRoaXMuY3JlYXRlRW1wdHlTcGFjZXMoKTtcclxuICB9XHJcblxyXG4gIHNldE1vbnRoRGF0YUJlZm9yZShkYXk6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICBpZiAoZGF0ZSA+PSAxKSB7XHJcbiAgICAgIGlmIChkYXkgPCAwKSB7XHJcbiAgICAgICAgZGF5ID0gNjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XSA9IFtkYXRlLCAuLi50aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XV07XHJcbiAgICAgIHRoaXMuc2V0TW9udGhEYXRhQmVmb3JlKC0tZGF5LCAtLWRhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhEYXRhQWZ0ZXIoZGF5OiBhbnksIGRhdGU6IGFueSwgY3VycmVudE1vbnRoTWF4VmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgbmVwYWxpRGF0ZSA9IHtcclxuICAgICAgZGF5OiBkYXRlLFxyXG4gICAgICBtb250aDogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCxcclxuICAgICAgeWVhcjogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyLFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyAgb25seSBhZGQgdGhlIGRhdGEgaWYgdGhlIGN1cnJlbnQgbW9udGggbWF0Y2hlc1xyXG4gICAgaWYgKGRhdGUgPD0gY3VycmVudE1vbnRoTWF4VmFsdWUpIHtcclxuICAgICAgaWYgKGRheSA+IDYpIHtcclxuICAgICAgICBkYXkgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXldID0gWy4uLnRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXldLCBkYXRlXTtcclxuICAgICAgdGhpcy5zZXRNb250aERhdGFBZnRlcigrK2RheSwgKytkYXRlLCBjdXJyZW50TW9udGhNYXhWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVFbXB0eVNwYWNlcygpIHtcclxuICAgIC8vIGZpcnN0IGZpbmQgb3V0IHdoaWNoIGRheSBoYXMgdGhlIDFzdFxyXG4gICAgLy8gIGlmIGl0cyBhIFN1bmRheSwgdGhlbiBkb24ndCBkbyBhbnl0aGluZyBlbHNlIGFkZCAxIHNwYWNlIG9uIGVhY2ggcHJldmlvdXMgZGF5XHJcbiAgICBsZXQgZGF5SW5kZXggPSAwO1xyXG4gICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuY3VycmVudE1vbnRoRGF0YSkubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygxKSkge1xyXG4gICAgICAgIGRheUluZGV4ID0gaW5kZXg7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlLmluY2x1ZGVzKDEpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGRheUluZGV4KSB7XHJcbiAgICAgIGZvciAoZGF5SW5kZXg7IGRheUluZGV4ID4gMDsgZGF5SW5kZXgtLSkge1xyXG4gICAgICAgIGNvbnN0IG1vbnRoRGF0YSA9IHRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXlJbmRleCAtIDFdO1xyXG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXlJbmRleCAtIDFdID0gW251bGwsIC4uLm1vbnRoRGF0YV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdERhdGUoZGF5OiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0geyAuLi50aGlzLmN1cnJlbnROZXBhbGlEYXRlLCBkYXkgfTtcclxuICAgIHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU9wZW4oKSB7XHJcbiAgICBpZiAoIXRoaXMuYWx3YXlzVmlzaWJsZSkge1xyXG4gICAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW4oKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAvL3RoaXMuc2V0Q3VycmVudERhdGUoKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwibmVwYWxpLWRhdGUtcGlja2VyXCI+XG4gIDxpbnB1dFxuICAgIGNsYXNzPVwibnBfZGF0ZXBpY2tlcl9pbnB1dFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFt2YWx1ZV09XCJmb3JtYXR0ZWREYXRlXCJcbiAgICBbbmdDbGFzc109XCJpbnB1dENsYXNzXCJcbiAgICAoZm9jdXMpPVwib3BlbigpXCJcbiAgICAoa2V5ZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBbaGlkZGVuXT1cImhpZGVJbnB1dFwiXG4gIC8+XG4gIDxhIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIiBbbmdDbGFzc109XCIoaXNPcGVuKT8gJ2FjdGl2ZSc6JydcIj5cbiAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDQ0OCA1MTJcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTUyIDY0SDI5NlYyNEMyOTYgMTAuNzUgMzA2LjcgMCAzMjAgMEMzMzMuMyAwIDM0NCAxMC43NSAzNDQgMjRWNjRIMzg0QzQxOS4zIDY0IDQ0OCA5Mi42NSA0NDggMTI4VjQ0OEM0NDggNDgzLjMgNDE5LjMgNTEyIDM4NCA1MTJINjRDMjguNjUgNTEyIDAgNDgzLjMgMCA0NDhWMTI4QzAgOTIuNjUgMjguNjUgNjQgNjQgNjRIMTA0VjI0QzEwNCAxMC43NSAxMTQuNyAwIDEyOCAwQzE0MS4zIDAgMTUyIDEwLjc1IDE1MiAyNFY2NHpNNDggNDQ4QzQ4IDQ1Ni44IDU1LjE2IDQ2NCA2NCA0NjRIMzg0QzM5Mi44IDQ2NCA0MDAgNDU2LjggNDAwIDQ0OFYxOTJINDhWNDQ4elwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICA8L2E+XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHBcIiAqbmdJZj1cImlzT3BlblwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48IS0tLm5lcGFsaS1kYXRlLXBpY2tlci0tPlxuXG48bmctdGVtcGxhdGUgI2RwPlxuICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlcl9fY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXJfX29wdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImRhdGVwaWNrZXJfX29wdGlvbnMteWVhci1jb250YWluZXJcIj5cbiAgICAgICAgPHNwYW4+IHt7IFwiWWVhclwiIHwgdG9OcDogbGFuZ3VhZ2U6XCJ3b3JkXCIgfX06IDwvc3Bhbj5cbiAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdFllYXIoJGV2ZW50KVwiPlxuICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB5ZWFyIG9mIHllYXJzOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ5ZWFyXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ5ZWFyID09IGN1cnJlbnROZXBhbGlEYXRlPy55ZWFyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB5ZWFyIHwgdG9OcDogbGFuZ3VhZ2U6XCJudW1iZXJcIiB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZXBpY2tlcl9fb3B0aW9ucy1tb250aC1jb250YWluZXJcIj5cbiAgICAgICAgPHNwYW4+e3sgXCJNb250aFwiIHwgdG9OcDogbGFuZ3VhZ2U6XCJ3b3JkXCIgfX06IDwvc3Bhbj5cbiAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdE1vbnRoKCRldmVudClcIj5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IG1vbnRoIG9mIG1vbnRoc01hcHBpbmdbbGFuZ3VhZ2VdW21vbnRoRGlzcGxheVR5cGVdO1xuICAgICAgICAgICAgICBpbmRleCBhcyBpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm1vbnRoXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpID09PSBjdXJyZW50TmVwYWxpRGF0ZT8ubW9udGhcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG1vbnRoIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyX19kYXlzLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRhdGVwaWNrZXJfX2RheXNcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheXNNYXBwaW5nW2xhbmd1YWdlXVtkYXlEaXNwbGF5VHlwZV07IGluZGV4IGFzIGlcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlcl9fd2Vla2RheVwiPnt7IGRheSB9fTwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyX19kYXRlLWNvbnRhaW5lclwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGRhdGUgb2YgY3VycmVudE1vbnRoRGF0YVtpXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImRhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyX19kYXRlXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXRlcGlja2VyX19kYXRlLS1hY3RpdmVdPVwiXG4gICAgICAgICAgICAgIGRhdGUgPT09IHNlbGVjdGVkRGF0ZT8uZGF5ICYmXG4gICAgICAgICAgICAgIGN1cnJlbnROZXBhbGlEYXRlLm1vbnRoID09PSBzZWxlY3RlZERhdGU/Lm1vbnRoICYmXG4gICAgICAgICAgICAgIGN1cnJlbnROZXBhbGlEYXRlLnllYXIgPT09IHNlbGVjdGVkRGF0ZT8ueWVhclxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXRlcGlja2VyX19kYXRlLS1jdXJyZW50LWRheV09XCJcbiAgICAgICAgICAgICAgZGF0ZSA9PT0gbmVwYWxpRGF0ZVRvZGF5LmRheSAmJlxuICAgICAgICAgICAgICBjdXJyZW50TmVwYWxpRGF0ZS5tb250aCA9PT0gbmVwYWxpRGF0ZVRvZGF5Lm1vbnRoICYmXG4gICAgICAgICAgICAgIGN1cnJlbnROZXBhbGlEYXRlLnllYXIgPT09IG5lcGFsaURhdGVUb2RheS55ZWFyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF0ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGRhdGUgfCB0b05wOiBsYW5ndWFnZTpcIm51bWJlclwiIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFkYXRlXCIgY2xhc3M9XCJkYXRlcGlja2VyX19kYXRlLS1kaXNhYmxlZFwiPlxuICAgICAgICAgICAgPHNwYW4+Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { BrowserModule } from '@angular/platform-browser';
4
+ import { NpDatePickerComponent } from './np-datepicker.component';
5
+ import { ToNpPipe } from './to-np.pipe';
6
+ import * as i0 from "@angular/core";
7
+ export class NepaliDatepickerModule {
8
+ }
9
+ NepaliDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NepaliDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NepaliDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NepaliDatepickerModule, declarations: [ToNpPipe,
11
+ NpDatePickerComponent], imports: [BrowserModule,
12
+ FormsModule], exports: [NpDatePickerComponent] });
13
+ NepaliDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NepaliDatepickerModule, imports: [[
14
+ BrowserModule,
15
+ FormsModule
16
+ ]] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NepaliDatepickerModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ declarations: [
21
+ ToNpPipe,
22
+ NpDatePickerComponent
23
+ ],
24
+ imports: [
25
+ BrowserModule,
26
+ FormsModule
27
+ ],
28
+ exports: [
29
+ NpDatePickerComponent
30
+ ]
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnAtZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ucHgtbnAtZGF0ZXBpY2tlci9zcmMvbGliL25wLWRhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWV4QyxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsaUJBWC9CLFFBQVE7UUFDUixxQkFBcUIsYUFHckIsYUFBYTtRQUNiLFdBQVcsYUFHWCxxQkFBcUI7b0hBR1osc0JBQXNCLFlBUnhCO1lBQ1AsYUFBYTtZQUNiLFdBQVc7U0FDWjsyRkFLVSxzQkFBc0I7a0JBYmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLFFBQVE7d0JBQ1IscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTnBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9ucC1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb05wUGlwZSB9IGZyb20gJy4vdG8tbnAucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRvTnBQaXBlLFxuICAgIE5wRGF0ZVBpY2tlckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQnJvd3Nlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTnBEYXRlUGlja2VyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTmVwYWxpRGF0ZXBpY2tlck1vZHVsZSB7IH1cbiJdfQ==