ngx-np-datepicker 1.2.3 → 1.3.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 CHANGED
@@ -1,19 +1,14 @@
1
1
  # Angular Nepali Datepicker
2
- A simple Nepali Date Picker(Bikram Sambat) library in angular with no dependancy.
2
+ A configurable Nepali Date Picker(Bikram Sambat) built for angular appilcations. Supports latest (Angular 13) version.
3
+
4
+ ### Demo
5
+ <a href="https://wwwbijay.github.io/angular-nepali-datepicker/" target="_blank">Click here to check demo.</a>
3
6
 
4
7
  ## Installation
5
8
  ```
6
9
  npm install ngx-np-datepicker
7
10
  ```
8
11
 
9
- ### Demo
10
- <a href="https://wwwbijay.github.io/angular-nepali-datepicker/" target="_blank">Click here to check demo.</a>
11
-
12
-
13
-
14
- ### Note
15
- This package has no dependancy.
16
-
17
12
  ## Usage
18
13
  Import the `NepaliDatepickerModule` in your app.module.ts
19
14
 
@@ -39,6 +34,11 @@ then use `<np-datepicker [(ngModel)]="nepaliDate"></np-datepicker>` in your temp
39
34
  ```
40
35
 
41
36
 
37
+
38
+
39
+ ### Note
40
+ This package has no dependancy.
41
+
42
42
  ### Format
43
43
  The supported date format is dd-mm-yyyy
44
44
 
@@ -20,7 +20,7 @@ export class NpDatePickerComponent {
20
20
  this.hideInput = false;
21
21
  this.alwaysVisible = false;
22
22
  this.language = 'ne';
23
- this.monthDisplayType = 'modern';
23
+ this.monthDisplayType = 'default';
24
24
  this.dayDisplayType = 'short';
25
25
  this.dateFormatter = (selectedDate) => {
26
26
  const dd = selectedDate.day < 10 ? '0' + selectedDate.day : selectedDate.day;
@@ -225,7 +225,7 @@ NpDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
225
225
  useExisting: forwardRef(() => NpDatePickerComponent),
226
226
  multi: true,
227
227
  },
228
- ], ngImport: i0, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:18px 8px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:30px}.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:#f3f3f3;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:14px}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}.prev-month,.next-month{padding:5px;width:20px;height:20px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:25px}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:10px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\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 });
228
+ ], ngImport: i0, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:12px 5px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:25px}.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:#f3f3f3;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}.datepicker__options-year-container select{border:none;color:#fff;background:none;font-size:14px;width:58px}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}.prev-month,.next-month{padding:5px;width:25px;height:25px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:1em}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:8px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\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 });
229
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NpDatePickerComponent, decorators: [{
230
230
  type: Component,
231
231
  args: [{ selector: 'np-datepicker', providers: [
@@ -234,7 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
234
234
  useExisting: forwardRef(() => NpDatePickerComponent),
235
235
  multi: true,
236
236
  },
237
- ], encapsulation: ViewEncapsulation.None, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:18px 8px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:30px}.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:#f3f3f3;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:14px}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}.prev-month,.next-month{padding:5px;width:20px;height:20px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:25px}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:10px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\n"] }]
237
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:12px 5px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:25px}.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:#f3f3f3;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}.datepicker__options-year-container select{border:none;color:#fff;background:none;font-size:14px;width:58px}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}.prev-month,.next-month{padding:5px;width:25px;height:25px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:1em}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:8px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\n"] }]
238
238
  }], ctorParameters: function () { return [{ type: i1.NpDatePickerService }, { type: i0.ElementRef }]; }, propDecorators: { theme: [{
239
239
  type: Input
240
240
  }], language: [{
@@ -245,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
245
245
  type: HostListener,
246
246
  args: ['document:click', ['$event']]
247
247
  }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnAtZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ucHgtbnAtZGF0ZXBpY2tlci9zcmMvbGliL25wLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbnB4LW5wLWRhdGVwaWNrZXIvc3JjL2xpYi9ucC1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixLQUFLLEVBQ0wsVUFBVSxFQUNWLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztBQWV2RCxNQUFNLE9BQU8scUJBQXFCO0lBZ0RoQyxZQUNTLFdBQWdDLEVBQy9CLElBQWdCO1FBRGpCLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBakQxQixvQkFBZSxHQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxzQkFBaUIsR0FBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFOUQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFLbkIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUlyQixnQkFBVyxHQUFnQixXQUFXLENBQUM7UUFFdkMsa0JBQWEsR0FBaUIsYUFBYSxDQUFDO1FBRTVDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGtCQUFhLEdBQUcs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QUNGLDBCQy9CSCxvaklBc0dBOzJGRHBFYSxxQkFBcUI7a0JBYmpDLFNBQVM7K0JBQ0UsZUFBZSxhQUdkO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO21JQTBCckMsS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFjTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25Jbml0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTnBEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4vbnAtZGF0ZXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBOZXBhbGlEYXRlLFxyXG4gIE1vbnRoRGF0YSxcclxuICBEYXlzTWFwcGluZyxcclxuICBNb250aE1hcHBpbmcsXHJcbiAgRGF0ZUZvcm1hdHRlcixcclxufSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgZGF5c01hcHBpbmcsIG1vbnRoc01hcHBpbmcgfSBmcm9tICcuL21hcHBpbmcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICducC1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbnAtZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25wLWRhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5wRGF0ZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOcERhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBuZXBhbGlEYXRlVG9kYXk6IE5lcGFsaURhdGUgPSB7IGRheTogMCwgbW9udGg6IDAsIHllYXI6IDAgfTtcclxuICBjdXJyZW50TmVwYWxpRGF0ZTogTmVwYWxpRGF0ZSA9IHsgZGF5OiAwLCBtb250aDogMCwgeWVhcjogMCB9O1xyXG4gIHNlbGVjdGVkRGF0ZSE6IE5lcGFsaURhdGU7XHJcbiAgZm9ybWF0dGVkRGF0ZSA9ICcnO1xyXG4gIGN1cnJlbnREYXRlOiBhbnk7XHJcblxyXG4gIGRpc3BsYXlEYXRlITogc3RyaW5nO1xyXG5cclxuICB5ZWFyczogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgY3VycmVudE1vbnRoRGF0YSE6IGFueTtcclxuXHJcbiAgZGF5c01hcHBpbmc6IERheXNNYXBwaW5nID0gZGF5c01hcHBpbmc7XHJcblxyXG4gIG1vbnRoc01hcHBpbmc6IE1vbnRoTWFwcGluZyA9IG1vbnRoc01hcHBpbmc7XHJcblxyXG4gIGlzT3BlbiA9IGZhbHNlO1xyXG5cclxuICBoaWRlSW5wdXQgPSBmYWxzZTtcclxuXHJcbiAgYWx3YXlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRoZW1lITogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhbmd1YWdlOiAnZW4nIHwgJ25lJyA9ICduZSc7XHJcbiAgQElucHV0KClcclxuICBtb250aERpc3BsYXlUeXBlOiAnZGVmYXVsdCcgfCAnbW9kZXJuJyB8ICdzaG9ydCcgPSAnbW9kZXJuJztcclxuXHJcbiAgZGF5RGlzcGxheVR5cGU6ICdkZWZhdWx0JyB8ICdzaG9ydCcgPSAnc2hvcnQnO1xyXG5cclxuICBkYXRlRm9ybWF0dGVyOiBEYXRlRm9ybWF0dGVyID0gKHNlbGVjdGVkRGF0ZTogTmVwYWxpRGF0ZSkgPT4ge1xyXG4gICAgY29uc3QgZGQgPVxyXG4gICAgICBzZWxlY3RlZERhdGUuZGF5IDwgMTAgPyAnMCcgKyBzZWxlY3RlZERhdGUuZGF5IDogc2VsZWN0ZWREYXRlLmRheTtcclxuICAgIGNvbnN0IG1tID1cclxuICAgICAgc2VsZWN0ZWREYXRlLm1vbnRoIDwgMTAgPyAnMCcgKyBzZWxlY3RlZERhdGUubW9udGggOiBzZWxlY3RlZERhdGUubW9udGg7XHJcbiAgICByZXR1cm4gYCR7ZGR9LyR7bW19LyR7dGhpcy5zZWxlY3RlZERhdGUueWVhcn1gO1xyXG4gIH07XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBjbGlja291dChldmVudDogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgX25lcGFsaURhdGU6IE5wRGF0ZVBpY2tlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm5lcGFsaURhdGVUb2RheSA9IHRoaXMuX25lcGFsaURhdGUuc2V0Q3VycmVudE5lcGFsaURhdGUoKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudERhdGUoKTtcclxuICAgIHRoaXMucG9wdWxhdGVZZWFycygpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50TW9udGhEYXRhKCk7XHJcbiAgICB0aGlzLnNlbGVjdERhdGUodGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXkpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVZZWFycygpIHtcclxuICAgIGZvciAobGV0IGkgPSAyMDAxOyBpIDw9IDIwOTk7IGkrKykge1xyXG4gICAgICB0aGlzLnllYXJzLnB1c2goaSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdFllYXIoZTogYW55KSB7XHJcbiAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXIgPSBlLnRhcmdldC52YWx1ZTtcclxuXHJcbiAgICBjb25zdCBuZXdEYXRlID0ge1xyXG4gICAgICBkYXk6IHRoaXMuY3VycmVudE5lcGFsaURhdGUuZGF5LFxyXG4gICAgICBtb250aDogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCxcclxuICAgICAgeWVhcjogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gdGhpcy5fbmVwYWxpRGF0ZS5uZXBUb0VuZ0RhdGUoXHJcbiAgICAgIG5ld0RhdGUuZGF5LFxyXG4gICAgICBuZXdEYXRlLm1vbnRoICsgMSxcclxuICAgICAgbmV3RGF0ZS55ZWFyXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50TW9udGhEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RNb250aChlOiBhbnkpIHtcclxuICAgIGxldCBtb250aCA9IGUudGFyZ2V0LnZhbHVlO1xyXG4gICAgbGV0IG5lcF9tb250aF9pbmRleCA9XHJcbiAgICAgIHRoaXMubW9udGhzTWFwcGluZ1t0aGlzLmxhbmd1YWdlXVt0aGlzLm1vbnRoRGlzcGxheVR5cGVdPy5pbmRleE9mKFxyXG4gICAgICAgIG1vbnRoXHJcbiAgICAgICkgPz8gMDtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoID0gbmVwX21vbnRoX2luZGV4O1xyXG5cclxuICAgIGNvbnN0IG5ld05lcGFsaURhdGUgPSB7XHJcbiAgICAgIGRheTogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXksXHJcbiAgICAgIG1vbnRoOiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoLFxyXG4gICAgICB5ZWFyOiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHRoaXMuX25lcGFsaURhdGUubmVwVG9FbmdEYXRlKFxyXG4gICAgICBuZXdOZXBhbGlEYXRlLmRheSxcclxuICAgICAgbmV3TmVwYWxpRGF0ZS5tb250aCArIDEsXHJcbiAgICAgIG5ld05lcGFsaURhdGUueWVhclxyXG4gICAgKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudE1vbnRoRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRDdXJyZW50TW9udGhEYXRhKCkge1xyXG4gICAgdGhpcy5jdXJyZW50TW9udGhEYXRhID0ge1xyXG4gICAgICAwOiBbXSxcclxuICAgICAgMTogW10sXHJcbiAgICAgIDI6IFtdLFxyXG4gICAgICAzOiBbXSxcclxuICAgICAgNDogW10sXHJcbiAgICAgIDU6IFtdLFxyXG4gICAgICA2OiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBmb3JtYXRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLmZvcm1hdHRlZERhdGUgPSB0aGlzLmRhdGVGb3JtYXR0ZXIodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge307XHJcblxyXG4gIHByb3BhZ2F0ZVRvdWNoID0gKF86IGFueSkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZCgpIHt9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnREYXRlKCkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlID0gdGhpcy5fbmVwYWxpRGF0ZS5lbmdUb05lcERhdGUoXHJcbiAgICAgICAgdGhpcy5jdXJyZW50RGF0ZS5nZXREYXRlKCksXHJcbiAgICAgICAgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBkYXksIG1vbnRoLCB5ZWFyIH0gPSB0aGlzLnNlbGVjdGVkRGF0ZTtcclxuICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZSA9IHRoaXMuX25lcGFsaURhdGUuZW5nVG9OZXBEYXRlKGRheSwgbW9udGgsIHllYXIpO1xyXG4gICAgICB0aGlzLmN1cnJlbnREYXRlID0gdGhpcy5fbmVwYWxpRGF0ZS5uZXBUb0VuZ0RhdGUoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUueWVhcixcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5tb250aCArIDEsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUuZGF5XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50TW9udGhEYXRhKCkge1xyXG4gICAgdGhpcy5yZXNldEN1cnJlbnRNb250aERhdGEoKTtcclxuXHJcbiAgICAvLyBmaWxsIHRoZSBjdXJyZW50TW9udGhEYXRhIHdpdGggY3VycmVudCBkYXRlXHJcbiAgICBsZXQgZGF5ID0gdGhpcy5jdXJyZW50RGF0ZS5nZXREYXkoKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XSA9IFt0aGlzLmN1cnJlbnROZXBhbGlEYXRlLmRheV07XHJcblxyXG4gICAgLy8gZmlsbCB0aGUgY3VycmVudE1vbnRoRGF0YSB3aXRoIGRheSBiZWZvcmUgdGhlIGN1cnJlbnQgZGF0ZVxyXG4gICAgdGhpcy5zZXRNb250aERhdGFCZWZvcmUoZGF5IC0gMSwgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXkgLSAxKTtcclxuXHJcbiAgICB2YXIgY3VycmVudE1vbnRoTWF4VmFsdWUgPVxyXG4gICAgICB0aGlzLl9uZXBhbGlEYXRlLm5lcGFsaU1vbnRoc1t0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXIgLSAyMDAwXVtcclxuICAgICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoXHJcbiAgICAgIF07XHJcblxyXG4gICAgLy8gZmlsbCB0aGUgY3VycmVudE1vbnRoRGF0YSB3aXRoIGRheSBhZnRlciB0aGUgY3VycmVudCBkYXRlXHJcbiAgICB0aGlzLnNldE1vbnRoRGF0YUFmdGVyKFxyXG4gICAgICBkYXkgKyAxLFxyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLmRheSArIDEsXHJcbiAgICAgIGN1cnJlbnRNb250aE1heFZhbHVlXHJcbiAgICApO1xyXG5cclxuICAgIC8vIHdlIG5lZWQgc29tZSBlbXB0eSBzcGFjZXMgaW4gcGxhY2Ugc28gdGhhdCB0aGUgZGF0ZXMgYXJlIHNob3duIGluIGNvcnJlY3Qgb3JkZXJcclxuICAgIC8vIGVnIGlmIHRoZSAxc3QgZGF5IHN0YXJ0cyBvbiBtb25kYXkgdGhlbiB3ZSBuZWVkIDEgZW1wdHkgc3BhY2UgZm9yIG5vbiBleGlzdGluZ24gZGF0ZSBvbiBTdW5kYXlcclxuICAgIHRoaXMuY3JlYXRlRW1wdHlTcGFjZXMoKTtcclxuICB9XHJcblxyXG4gIHNldE1vbnRoRGF0YUJlZm9yZShkYXk6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICBpZiAoZGF0ZSA+PSAxKSB7XHJcbiAgICAgIGlmIChkYXkgPCAwKSB7XHJcbiAgICAgICAgZGF5ID0gNjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XSA9IFtkYXRlLCAuLi50aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XV07XHJcbiAgICAgIHRoaXMuc2V0TW9udGhEYXRhQmVmb3JlKC0tZGF5LCAtLWRhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhEYXRhQWZ0ZXIoZGF5OiBhbnksIGRhdGU6IGFueSwgY3VycmVudE1vbnRoTWF4VmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgbmVwYWxpRGF0ZSA9IHtcclxuICAgICAgZGF5OiBkYXRlLFxyXG4gICAgICBtb250aDogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCxcclxuICAgICAgeWVhcjogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyLFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyAgb25seSBhZGQgdGhlIGRhdGEgaWYgdGhlIGN1cnJlbnQgbW9udGggbWF0Y2hlc1xyXG4gICAgaWYgKGRhdGUgPD0gY3VycmVudE1vbnRoTWF4VmFsdWUpIHtcclxuICAgICAgaWYgKGRheSA+IDYpIHtcclxuICAgICAgICBkYXkgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXldID0gWy4uLnRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXldLCBkYXRlXTtcclxuICAgICAgdGhpcy5zZXRNb250aERhdGFBZnRlcigrK2RheSwgKytkYXRlLCBjdXJyZW50TW9udGhNYXhWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVFbXB0eVNwYWNlcygpIHtcclxuICAgIC8vIGZpcnN0IGZpbmQgb3V0IHdoaWNoIGRheSBoYXMgdGhlIDFzdFxyXG4gICAgLy8gIGlmIGl0cyBhIFN1bmRheSwgdGhlbiBkb24ndCBkbyBhbnl0aGluZyBlbHNlIGFkZCAxIHNwYWNlIG9uIGVhY2ggcHJldmlvdXMgZGF5XHJcbiAgICBsZXQgZGF5SW5kZXggPSAwO1xyXG4gICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuY3VycmVudE1vbnRoRGF0YSkubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygxKSkge1xyXG4gICAgICAgIGRheUluZGV4ID0gaW5kZXg7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlLmluY2x1ZGVzKDEpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGRheUluZGV4KSB7XHJcbiAgICAgIGZvciAoZGF5SW5kZXg7IGRheUluZGV4ID4gMDsgZGF5SW5kZXgtLSkge1xyXG4gICAgICAgIGNvbnN0IG1vbnRoRGF0YSA9IHRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXlJbmRleCAtIDFdO1xyXG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoRGF0YVtkYXlJbmRleCAtIDFdID0gW251bGwsIC4uLm1vbnRoRGF0YV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdERhdGUoZGF5OiBudW1iZXIpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudE5lcGFsaURhdGUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB7IC4uLnRoaXMuY3VycmVudE5lcGFsaURhdGUsIGRheSB9O1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHJldk1vbnRoKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGggPD0gMCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoID0gMTE7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUueWVhci0tO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aC0tO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCBuZXdOZXBhbGlEYXRlID0ge1xyXG4gICAgICBkYXk6IHRoaXMuY3VycmVudE5lcGFsaURhdGUuZGF5LFxyXG4gICAgICBtb250aDogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCxcclxuICAgICAgeWVhcjogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyLFxyXG4gICAgfTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSB0aGlzLl9uZXBhbGlEYXRlLm5lcFRvRW5nRGF0ZShcclxuICAgICAgbmV3TmVwYWxpRGF0ZS5kYXksXHJcbiAgICAgIG5ld05lcGFsaURhdGUubW9udGggKyAxLFxyXG4gICAgICBuZXdOZXBhbGlEYXRlLnllYXJcclxuICAgICk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnRNb250aERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5leHRNb250aCgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoID49IDExKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGggPSAwO1xyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXIrKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGgrKztcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudE5lcGFsaURhdGUpO1xyXG4gICBcclxuICAgIGNvbnN0IG5ld0RhdGUgPSB7XHJcbiAgICAgIGRheTogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXksXHJcbiAgICAgIG1vbnRoOiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoLFxyXG4gICAgICB5ZWFyOiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHRoaXMuX25lcGFsaURhdGUubmVwVG9FbmdEYXRlKFxyXG4gICAgICBuZXdEYXRlLmRheSxcclxuICAgICAgbmV3RGF0ZS5tb250aCArIDEsXHJcbiAgICAgIG5ld0RhdGUueWVhclxyXG4gICAgKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudE1vbnRoRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3BlbigpIHtcclxuICAgIGlmICghdGhpcy5hbHdheXNWaXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbigpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgIC8vdGhpcy5zZXRDdXJyZW50RGF0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibmVwYWxpLWRhdGUtcGlja2VyXCIgW25nQ2xhc3NdPVwidGhlbWVcIj5cbiAgXG4gIDxpbnB1dFxuICAgIGNsYXNzPVwibnBfZGF0ZXBpY2tlcl9pbnB1dFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFt2YWx1ZV09XCJmb3JtYXR0ZWREYXRlXCJcbiAgICAoZm9jdXMpPVwib3BlbigpXCJcbiAgICAoa2V5ZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBbaGlkZGVuXT1cImhpZGVJbnB1dFwiXG4gIC8+XG4gIDxhIGNsYXNzPVwiZm9ybS1pY29uXCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKVwiIFtuZ0NsYXNzXT1cImlzT3BlbiA/ICdhY3RpdmUnIDogJydcIj5cbiAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDQ0OCA1MTJcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTUyIDY0SDI5NlYyNEMyOTYgMTAuNzUgMzA2LjcgMCAzMjAgMEMzMzMuMyAwIDM0NCAxMC43NSAzNDQgMjRWNjRIMzg0QzQxOS4zIDY0IDQ0OCA5Mi42NSA0NDggMTI4VjQ0OEM0NDggNDgzLjMgNDE5LjMgNTEyIDM4NCA1MTJINjRDMjguNjUgNTEyIDAgNDgzLjMgMCA0NDhWMTI4QzAgOTIuNjUgMjguNjUgNjQgNjQgNjRIMTA0VjI0QzEwNCAxMC43NSAxMTQuNyAwIDEyOCAwQzE0MS4zIDAgMTUyIDEwLjc1IDE1MiAyNFY2NHpNNDggNDQ4QzQ4IDQ1Ni44IDU1LjE2IDQ2NCA2NCA0NjRIMzg0QzM5Mi44IDQ2NCA0MDAgNDU2LjggNDAwIDQ0OFYxOTJINDhWNDQ4elwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICA8L2E+XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHBcIiAqbmdJZj1cImlzT3BlblwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48IS0tLm5lcGFsaS1kYXRlLXBpY2tlci0tPlxuXG48bmctdGVtcGxhdGUgI2RwPlxuICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlcl9fY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXJfX29wdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8YSBjbGFzcz1cInByZXYtbW9udGhcIiAoY2xpY2spPVwicHJldk1vbnRoKClcIj5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMjAgNTEyXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMjI0IDQ4MGMtOC4xODggMC0xNi4zOC0zLjEyNS0yMi42Mi05LjM3NWwtMTkyLTE5MmMtMTIuNS0xMi41LTEyLjUtMzIuNzUgMC00NS4yNWwxOTItMTkyYzEyLjUtMTIuNSAzMi43NS0xMi41IDQ1LjI1IDBzMTIuNSAzMi43NSAwIDQ1LjI1TDc3LjI1IDI1NmwxNjkuNCAxNjkuNGMxMi41IDEyLjUgMTIuNSAzMi43NSAwIDQ1LjI1QzI0MC40IDQ3Ni45IDIzMi4yIDQ4MCAyMjQgNDgwelwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2E+XG4gICAgICA8c3BhbiBjbGFzcz1cImRhdGVwaWNrZXJfX29wdGlvbnMteWVhci1jb250YWluZXJcIj5cbiAgICAgICAgPHNwYW4+IHt7IFwiWWVhclwiIHwgdG9OcDogbGFuZ3VhZ2U6XCJ3b3JkXCIgfX06IDwvc3Bhbj5cbiAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdFllYXIoJGV2ZW50KVwiPlxuICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB5ZWFyIG9mIHllYXJzOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ5ZWFyXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ5ZWFyID09IGN1cnJlbnROZXBhbGlEYXRlPy55ZWFyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB5ZWFyIHwgdG9OcDogbGFuZ3VhZ2U6XCJudW1iZXJcIiB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZXBpY2tlcl9fb3B0aW9ucy1tb250aC1jb250YWluZXJcIj5cbiAgICAgICAgPHNwYW4+e3sgXCJNb250aFwiIHwgdG9OcDogbGFuZ3VhZ2U6XCJ3b3JkXCIgfX06IDwvc3Bhbj5cbiAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdE1vbnRoKCRldmVudClcIj5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IG1vbnRoIG9mIG1vbnRoc01hcHBpbmdbbGFuZ3VhZ2VdW21vbnRoRGlzcGxheVR5cGVdO1xuICAgICAgICAgICAgICBpbmRleCBhcyBpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm1vbnRoXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCIgaSA9PT0gY3VycmVudE5lcGFsaURhdGU/Lm1vbnRoXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBtb250aCB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxhIGNsYXNzPVwibmV4dC1tb250aFwiIChjbGljayk9XCJuZXh0TW9udGgoKVwiPlxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk05NiA0ODBjLTguMTg4IDAtMTYuMzgtMy4xMjUtMjIuNjItOS4zNzVjLTEyLjUtMTIuNS0xMi41LTMyLjc1IDAtNDUuMjVMMjQyLjggMjU2TDczLjM4IDg2LjYzYy0xMi41LTEyLjUtMTIuNS0zMi43NSAwLTQ1LjI1czMyLjc1LTEyLjUgNDUuMjUgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjc1IDAgNDUuMjVsLTE5MiAxOTJDMTEyLjQgNDc2LjkgMTA0LjIgNDgwIDk2IDQ4MHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyX19kYXlzLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRhdGVwaWNrZXJfX2RheXNcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheXNNYXBwaW5nW2xhbmd1YWdlXVtkYXlEaXNwbGF5VHlwZV07IGluZGV4IGFzIGlcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlcl9fd2Vla2RheVwiPnt7IGRheSB9fTwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyX19kYXRlLWNvbnRhaW5lclwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGRhdGUgb2YgY3VycmVudE1vbnRoRGF0YVtpXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImRhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyX19kYXRlXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXRlcGlja2VyX19kYXRlLS1hY3RpdmVdPVwiXG4gICAgICAgICAgICAgIGRhdGUgPT09IHNlbGVjdGVkRGF0ZT8uZGF5ICYmXG4gICAgICAgICAgICAgIGN1cnJlbnROZXBhbGlEYXRlLm1vbnRoID09PSBzZWxlY3RlZERhdGU/Lm1vbnRoICYmXG4gICAgICAgICAgICAgIGN1cnJlbnROZXBhbGlEYXRlLnllYXIgPT09IHNlbGVjdGVkRGF0ZT8ueWVhclxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXRlcGlja2VyX19kYXRlLS1jdXJyZW50LWRheV09XCJcbiAgICAgICAgICAgICAgZGF0ZSA9PT0gbmVwYWxpRGF0ZVRvZGF5LmRheSAmJlxuICAgICAgICAgICAgICBjdXJyZW50TmVwYWxpRGF0ZS5tb250aCA9PT0gbmVwYWxpRGF0ZVRvZGF5Lm1vbnRoICYmXG4gICAgICAgICAgICAgIGN1cnJlbnROZXBhbGlEYXRlLnllYXIgPT09IG5lcGFsaURhdGVUb2RheS55ZWFyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF0ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGRhdGUgfCB0b05wOiBsYW5ndWFnZTpcIm51bWJlclwiIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFkYXRlXCIgY2xhc3M9XCJkYXRlcGlja2VyX19kYXRlLS1kaXNhYmxlZFwiPlxuICAgICAgICAgICAgPHNwYW4+Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnAtZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ucHgtbnAtZGF0ZXBpY2tlci9zcmMvbGliL25wLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbnB4LW5wLWRhdGVwaWNrZXIvc3JjL2xpYi9ucC1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixLQUFLLEVBQ0wsVUFBVSxFQUNWLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztBQWV2RCxNQUFNLE9BQU8scUJBQXFCO0lBZ0RoQyxZQUNTLFdBQWdDLEVBQy9CLElBQWdCO1FBRGpCLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBakQxQixvQkFBZSxHQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxzQkFBaUIsR0FBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFOUQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFLbkIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUlyQixnQkFBVyxHQUFnQixXQUFXLENBQUM7UUFFdkMsa0JBQWEsR0FBaUIsYUFBYSxDQUFDO1FBRTVDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGtCQUFhLEdBQUcs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QUNGLDBCQy9CSCxvaklBc0dBOzJGRHBFYSxxQkFBcUI7a0JBYmpDLFNBQVM7K0JBQ0UsZUFBZSxhQUdkO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO21JQTBCckMsS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFjTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25Jbml0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTnBEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4vbnAtZGF0ZXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBOZXBhbGlEYXRlLFxyXG4gIE1vbnRoRGF0YSxcclxuICBEYXlzTWFwcGluZyxcclxuICBNb250aE1hcHBpbmcsXHJcbiAgRGF0ZUZvcm1hdHRlcixcclxufSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgZGF5c01hcHBpbmcsIG1vbnRoc01hcHBpbmcgfSBmcm9tICcuL21hcHBpbmcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICducC1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbnAtZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25wLWRhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5wRGF0ZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOcERhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBuZXBhbGlEYXRlVG9kYXk6IE5lcGFsaURhdGUgPSB7IGRheTogMCwgbW9udGg6IDAsIHllYXI6IDAgfTtcclxuICBjdXJyZW50TmVwYWxpRGF0ZTogTmVwYWxpRGF0ZSA9IHsgZGF5OiAwLCBtb250aDogMCwgeWVhcjogMCB9O1xyXG4gIHNlbGVjdGVkRGF0ZSE6IE5lcGFsaURhdGU7XHJcbiAgZm9ybWF0dGVkRGF0ZSA9ICcnO1xyXG4gIGN1cnJlbnREYXRlOiBhbnk7XHJcblxyXG4gIGRpc3BsYXlEYXRlITogc3RyaW5nO1xyXG5cclxuICB5ZWFyczogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgY3VycmVudE1vbnRoRGF0YSE6IGFueTtcclxuXHJcbiAgZGF5c01hcHBpbmc6IERheXNNYXBwaW5nID0gZGF5c01hcHBpbmc7XHJcblxyXG4gIG1vbnRoc01hcHBpbmc6IE1vbnRoTWFwcGluZyA9IG1vbnRoc01hcHBpbmc7XHJcblxyXG4gIGlzT3BlbiA9IGZhbHNlO1xyXG5cclxuICBoaWRlSW5wdXQgPSBmYWxzZTtcclxuXHJcbiAgYWx3YXlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRoZW1lITogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhbmd1YWdlOiAnZW4nIHwgJ25lJyA9ICduZSc7XHJcbiAgQElucHV0KClcclxuICBtb250aERpc3BsYXlUeXBlOiAnZGVmYXVsdCcgfCAnbW9kZXJuJyB8ICdzaG9ydCcgPSAnZGVmYXVsdCc7XHJcblxyXG4gIGRheURpc3BsYXlUeXBlOiAnZGVmYXVsdCcgfCAnc2hvcnQnID0gJ3Nob3J0JztcclxuXHJcbiAgZGF0ZUZvcm1hdHRlcjogRGF0ZUZvcm1hdHRlciA9IChzZWxlY3RlZERhdGU6IE5lcGFsaURhdGUpID0+IHtcclxuICAgIGNvbnN0IGRkID1cclxuICAgICAgc2VsZWN0ZWREYXRlLmRheSA8IDEwID8gJzAnICsgc2VsZWN0ZWREYXRlLmRheSA6IHNlbGVjdGVkRGF0ZS5kYXk7XHJcbiAgICBjb25zdCBtbSA9XHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5tb250aCA8IDEwID8gJzAnICsgc2VsZWN0ZWREYXRlLm1vbnRoIDogc2VsZWN0ZWREYXRlLm1vbnRoO1xyXG4gICAgcmV0dXJuIGAke2RkfS8ke21tfS8ke3RoaXMuc2VsZWN0ZWREYXRlLnllYXJ9YDtcclxuICB9O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgY2xpY2tvdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIF9uZXBhbGlEYXRlOiBOcERhdGVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5uZXBhbGlEYXRlVG9kYXkgPSB0aGlzLl9uZXBhbGlEYXRlLnNldEN1cnJlbnROZXBhbGlEYXRlKCk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnREYXRlKCk7XHJcbiAgICB0aGlzLnBvcHVsYXRlWWVhcnMoKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudE1vbnRoRGF0YSgpO1xyXG4gICAgdGhpcy5zZWxlY3REYXRlKHRoaXMuY3VycmVudE5lcGFsaURhdGUuZGF5KTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlWWVhcnMoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMjAwMTsgaSA8PSAyMDk5OyBpKyspIHtcclxuICAgICAgdGhpcy55ZWFycy5wdXNoKGkpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZWxlY3RZZWFyKGU6IGFueSkge1xyXG4gICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyID0gZS50YXJnZXQudmFsdWU7XHJcblxyXG4gICAgY29uc3QgbmV3RGF0ZSA9IHtcclxuICAgICAgZGF5OiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLmRheSxcclxuICAgICAgbW9udGg6IHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGgsXHJcbiAgICAgIHllYXI6IHRoaXMuY3VycmVudE5lcGFsaURhdGUueWVhcixcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IHRoaXMuX25lcGFsaURhdGUubmVwVG9FbmdEYXRlKFxyXG4gICAgICBuZXdEYXRlLmRheSxcclxuICAgICAgbmV3RGF0ZS5tb250aCArIDEsXHJcbiAgICAgIG5ld0RhdGUueWVhclxyXG4gICAgKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudE1vbnRoRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0TW9udGgoZTogYW55KSB7XHJcbiAgICBsZXQgbW9udGggPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIGxldCBuZXBfbW9udGhfaW5kZXggPVxyXG4gICAgICB0aGlzLm1vbnRoc01hcHBpbmdbdGhpcy5sYW5ndWFnZV1bdGhpcy5tb250aERpc3BsYXlUeXBlXT8uaW5kZXhPZihcclxuICAgICAgICBtb250aFxyXG4gICAgICApID8/IDA7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCA9IG5lcF9tb250aF9pbmRleDtcclxuXHJcbiAgICBjb25zdCBuZXdOZXBhbGlEYXRlID0ge1xyXG4gICAgICBkYXk6IHRoaXMuY3VycmVudE5lcGFsaURhdGUuZGF5LFxyXG4gICAgICBtb250aDogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCxcclxuICAgICAgeWVhcjogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyLFxyXG4gICAgfTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSB0aGlzLl9uZXBhbGlEYXRlLm5lcFRvRW5nRGF0ZShcclxuICAgICAgbmV3TmVwYWxpRGF0ZS5kYXksXHJcbiAgICAgIG5ld05lcGFsaURhdGUubW9udGggKyAxLFxyXG4gICAgICBuZXdOZXBhbGlEYXRlLnllYXJcclxuICAgICk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnRNb250aERhdGEoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0Q3VycmVudE1vbnRoRGF0YSgpIHtcclxuICAgIHRoaXMuY3VycmVudE1vbnRoRGF0YSA9IHtcclxuICAgICAgMDogW10sXHJcbiAgICAgIDE6IFtdLFxyXG4gICAgICAyOiBbXSxcclxuICAgICAgMzogW10sXHJcbiAgICAgIDQ6IFtdLFxyXG4gICAgICA1OiBbXSxcclxuICAgICAgNjogW10sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy5mb3JtYXR0ZWREYXRlID0gdGhpcy5kYXRlRm9ybWF0dGVyKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xyXG5cclxuICBwcm9wYWdhdGVUb3VjaCA9IChfOiBhbnkpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoKSB7fVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50RGF0ZSgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZSA9IHRoaXMuX25lcGFsaURhdGUuZW5nVG9OZXBEYXRlKFxyXG4gICAgICAgIHRoaXMuY3VycmVudERhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIHRoaXMuY3VycmVudERhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICB0aGlzLmN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKClcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgZGF5LCBtb250aCwgeWVhciB9ID0gdGhpcy5zZWxlY3RlZERhdGU7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUgPSB0aGlzLl9uZXBhbGlEYXRlLmVuZ1RvTmVwRGF0ZShkYXksIG1vbnRoLCB5ZWFyKTtcclxuICAgICAgdGhpcy5jdXJyZW50RGF0ZSA9IHRoaXMuX25lcGFsaURhdGUubmVwVG9FbmdEYXRlKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnllYXIsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubW9udGggKyAxLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmRheVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q3VycmVudE1vbnRoRGF0YSgpIHtcclxuICAgIHRoaXMucmVzZXRDdXJyZW50TW9udGhEYXRhKCk7XHJcblxyXG4gICAgLy8gZmlsbCB0aGUgY3VycmVudE1vbnRoRGF0YSB3aXRoIGN1cnJlbnQgZGF0ZVxyXG4gICAgbGV0IGRheSA9IHRoaXMuY3VycmVudERhdGUuZ2V0RGF5KCk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50TW9udGhEYXRhW2RheV0gPSBbdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXldO1xyXG5cclxuICAgIC8vIGZpbGwgdGhlIGN1cnJlbnRNb250aERhdGEgd2l0aCBkYXkgYmVmb3JlIHRoZSBjdXJyZW50IGRhdGVcclxuICAgIHRoaXMuc2V0TW9udGhEYXRhQmVmb3JlKGRheSAtIDEsIHRoaXMuY3VycmVudE5lcGFsaURhdGUuZGF5IC0gMSk7XHJcblxyXG4gICAgdmFyIGN1cnJlbnRNb250aE1heFZhbHVlID1cclxuICAgICAgdGhpcy5fbmVwYWxpRGF0ZS5uZXBhbGlNb250aHNbdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyIC0gMjAwMF1bXHJcbiAgICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aFxyXG4gICAgICBdO1xyXG5cclxuICAgIC8vIGZpbGwgdGhlIGN1cnJlbnRNb250aERhdGEgd2l0aCBkYXkgYWZ0ZXIgdGhlIGN1cnJlbnQgZGF0ZVxyXG4gICAgdGhpcy5zZXRNb250aERhdGFBZnRlcihcclxuICAgICAgZGF5ICsgMSxcclxuICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5kYXkgKyAxLFxyXG4gICAgICBjdXJyZW50TW9udGhNYXhWYWx1ZVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyB3ZSBuZWVkIHNvbWUgZW1wdHkgc3BhY2VzIGluIHBsYWNlIHNvIHRoYXQgdGhlIGRhdGVzIGFyZSBzaG93biBpbiBjb3JyZWN0IG9yZGVyXHJcbiAgICAvLyBlZyBpZiB0aGUgMXN0IGRheSBzdGFydHMgb24gbW9uZGF5IHRoZW4gd2UgbmVlZCAxIGVtcHR5IHNwYWNlIGZvciBub24gZXhpc3RpbmduIGRhdGUgb24gU3VuZGF5XHJcbiAgICB0aGlzLmNyZWF0ZUVtcHR5U3BhY2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb250aERhdGFCZWZvcmUoZGF5OiBhbnksIGRhdGU6IGFueSkge1xyXG4gICAgaWYgKGRhdGUgPj0gMSkge1xyXG4gICAgICBpZiAoZGF5IDwgMCkge1xyXG4gICAgICAgIGRheSA9IDY7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhEYXRhW2RheV0gPSBbZGF0ZSwgLi4udGhpcy5jdXJyZW50TW9udGhEYXRhW2RheV1dO1xyXG4gICAgICB0aGlzLnNldE1vbnRoRGF0YUJlZm9yZSgtLWRheSwgLS1kYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE1vbnRoRGF0YUFmdGVyKGRheTogYW55LCBkYXRlOiBhbnksIGN1cnJlbnRNb250aE1heFZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnN0IG5lcGFsaURhdGUgPSB7XHJcbiAgICAgIGRheTogZGF0ZSxcclxuICAgICAgbW9udGg6IHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGgsXHJcbiAgICAgIHllYXI6IHRoaXMuY3VycmVudE5lcGFsaURhdGUueWVhcixcclxuICAgIH07XHJcblxyXG4gICAgLy8gIG9ubHkgYWRkIHRoZSBkYXRhIGlmIHRoZSBjdXJyZW50IG1vbnRoIG1hdGNoZXNcclxuICAgIGlmIChkYXRlIDw9IGN1cnJlbnRNb250aE1heFZhbHVlKSB7XHJcbiAgICAgIGlmIChkYXkgPiA2KSB7XHJcbiAgICAgICAgZGF5ID0gMDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XSA9IFsuLi50aGlzLmN1cnJlbnRNb250aERhdGFbZGF5XSwgZGF0ZV07XHJcbiAgICAgIHRoaXMuc2V0TW9udGhEYXRhQWZ0ZXIoKytkYXksICsrZGF0ZSwgY3VycmVudE1vbnRoTWF4VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlRW1wdHlTcGFjZXMoKSB7XHJcbiAgICAvLyBmaXJzdCBmaW5kIG91dCB3aGljaCBkYXkgaGFzIHRoZSAxc3RcclxuICAgIC8vICBpZiBpdHMgYSBTdW5kYXksIHRoZW4gZG9uJ3QgZG8gYW55dGhpbmcgZWxzZSBhZGQgMSBzcGFjZSBvbiBlYWNoIHByZXZpb3VzIGRheVxyXG4gICAgbGV0IGRheUluZGV4ID0gMDtcclxuICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmN1cnJlbnRNb250aERhdGEpLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodmFsdWUuaW5jbHVkZXMoMSkpIHtcclxuICAgICAgICBkYXlJbmRleCA9IGluZGV4O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWx1ZS5pbmNsdWRlcygxKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChkYXlJbmRleCkge1xyXG4gICAgICBmb3IgKGRheUluZGV4OyBkYXlJbmRleCA+IDA7IGRheUluZGV4LS0pIHtcclxuICAgICAgICBjb25zdCBtb250aERhdGEgPSB0aGlzLmN1cnJlbnRNb250aERhdGFbZGF5SW5kZXggLSAxXTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRNb250aERhdGFbZGF5SW5kZXggLSAxXSA9IFtudWxsLCAuLi5tb250aERhdGFdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3REYXRlKGRheTogbnVtYmVyKSB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmN1cnJlbnROZXBhbGlEYXRlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0geyAuLi50aGlzLmN1cnJlbnROZXBhbGlEYXRlLCBkYXkgfTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgIHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICB9XHJcblxyXG4gIHByZXZNb250aCgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoIDw9IDApIHtcclxuICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCA9IDExO1xyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLnllYXItLTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGgtLTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29uc3QgbmV3TmVwYWxpRGF0ZSA9IHtcclxuICAgICAgZGF5OiB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLmRheSxcclxuICAgICAgbW9udGg6IHRoaXMuY3VycmVudE5lcGFsaURhdGUubW9udGgsXHJcbiAgICAgIHllYXI6IHRoaXMuY3VycmVudE5lcGFsaURhdGUueWVhcixcclxuICAgIH07XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gdGhpcy5fbmVwYWxpRGF0ZS5uZXBUb0VuZ0RhdGUoXHJcbiAgICAgIG5ld05lcGFsaURhdGUuZGF5LFxyXG4gICAgICBuZXdOZXBhbGlEYXRlLm1vbnRoICsgMSxcclxuICAgICAgbmV3TmVwYWxpRGF0ZS55ZWFyXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50TW9udGhEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0TW9udGgoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCA+PSAxMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoID0gMDtcclxuICAgICAgdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnROZXBhbGlEYXRlLm1vbnRoKys7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmN1cnJlbnROZXBhbGlEYXRlKTtcclxuICAgXHJcbiAgICBjb25zdCBuZXdEYXRlID0ge1xyXG4gICAgICBkYXk6IHRoaXMuY3VycmVudE5lcGFsaURhdGUuZGF5LFxyXG4gICAgICBtb250aDogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS5tb250aCxcclxuICAgICAgeWVhcjogdGhpcy5jdXJyZW50TmVwYWxpRGF0ZS55ZWFyLFxyXG4gICAgfTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSB0aGlzLl9uZXBhbGlEYXRlLm5lcFRvRW5nRGF0ZShcclxuICAgICAgbmV3RGF0ZS5kYXksXHJcbiAgICAgIG5ld0RhdGUubW9udGggKyAxLFxyXG4gICAgICBuZXdEYXRlLnllYXJcclxuICAgICk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnRNb250aERhdGEoKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU9wZW4oKSB7XHJcbiAgICBpZiAoIXRoaXMuYWx3YXlzVmlzaWJsZSkge1xyXG4gICAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW4oKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAvL3RoaXMuc2V0Q3VycmVudERhdGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm5lcGFsaS1kYXRlLXBpY2tlclwiIFtuZ0NsYXNzXT1cInRoZW1lXCI+XG4gIFxuICA8aW5wdXRcbiAgICBjbGFzcz1cIm5wX2RhdGVwaWNrZXJfaW5wdXRcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbdmFsdWVdPVwiZm9ybWF0dGVkRGF0ZVwiXG4gICAgKGZvY3VzKT1cIm9wZW4oKVwiXG4gICAgKGtleWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgW2hpZGRlbl09XCJoaWRlSW5wdXRcIlxuICAvPlxuICA8YSBjbGFzcz1cImZvcm0taWNvblwiIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIiBbbmdDbGFzc109XCJpc09wZW4gPyAnYWN0aXZlJyA6ICcnXCI+XG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA0NDggNTEyXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTE1MiA2NEgyOTZWMjRDMjk2IDEwLjc1IDMwNi43IDAgMzIwIDBDMzMzLjMgMCAzNDQgMTAuNzUgMzQ0IDI0VjY0SDM4NEM0MTkuMyA2NCA0NDggOTIuNjUgNDQ4IDEyOFY0NDhDNDQ4IDQ4My4zIDQxOS4zIDUxMiAzODQgNTEySDY0QzI4LjY1IDUxMiAwIDQ4My4zIDAgNDQ4VjEyOEMwIDkyLjY1IDI4LjY1IDY0IDY0IDY0SDEwNFYyNEMxMDQgMTAuNzUgMTE0LjcgMCAxMjggMEMxNDEuMyAwIDE1MiAxMC43NSAxNTIgMjRWNjR6TTQ4IDQ0OEM0OCA0NTYuOCA1NS4xNiA0NjQgNjQgNDY0SDM4NEMzOTIuOCA0NjQgNDAwIDQ1Ni44IDQwMCA0NDhWMTkySDQ4VjQ0OHpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9hPlxuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRwXCIgKm5nSWY9XCJpc09wZW5cIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPCEtLS5uZXBhbGktZGF0ZS1waWNrZXItLT5cblxuPG5nLXRlbXBsYXRlICNkcD5cbiAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXJfX2NvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyX19vcHRpb25zLWNvbnRhaW5lclwiPlxuICAgICAgPGEgY2xhc3M9XCJwcmV2LW1vbnRoXCIgKGNsaWNrKT1cInByZXZNb250aCgpXCI+XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIwIDUxMlwiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTIyNCA0ODBjLTguMTg4IDAtMTYuMzgtMy4xMjUtMjIuNjItOS4zNzVsLTE5Mi0xOTJjLTEyLjUtMTIuNS0xMi41LTMyLjc1IDAtNDUuMjVsMTkyLTE5MmMxMi41LTEyLjUgMzIuNzUtMTIuNSA0NS4yNSAwczEyLjUgMzIuNzUgMCA0NS4yNUw3Ny4yNSAyNTZsMTY5LjQgMTY5LjRjMTIuNSAxMi41IDEyLjUgMzIuNzUgMCA0NS4yNUMyNDAuNCA0NzYuOSAyMzIuMiA0ODAgMjI0IDQ4MHpcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9hPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkYXRlcGlja2VyX19vcHRpb25zLXllYXItY29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuPiB7eyBcIlllYXJcIiB8IHRvTnA6IGxhbmd1YWdlOlwid29yZFwiIH19OiA8L3NwYW4+XG4gICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJzZWxlY3RZZWFyKCRldmVudClcIj5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgeWVhciBvZiB5ZWFyczsgaW5kZXggYXMgaVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwieWVhclwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwieWVhciA9PSBjdXJyZW50TmVwYWxpRGF0ZT8ueWVhclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgeWVhciB8IHRvTnA6IGxhbmd1YWdlOlwibnVtYmVyXCIgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImRhdGVwaWNrZXJfX29wdGlvbnMtbW9udGgtY29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuPnt7IFwiTW9udGhcIiB8IHRvTnA6IGxhbmd1YWdlOlwid29yZFwiIH19OiA8L3NwYW4+XG4gICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJzZWxlY3RNb250aCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCBtb250aCBvZiBtb250aHNNYXBwaW5nW2xhbmd1YWdlXVttb250aERpc3BsYXlUeXBlXTtcbiAgICAgICAgICAgICAgaW5kZXggYXMgaVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJtb250aFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiIGkgPT09IGN1cnJlbnROZXBhbGlEYXRlPy5tb250aFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgbW9udGggfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L3NwYW4+XG4gICAgICA8YSBjbGFzcz1cIm5leHQtbW9udGhcIiAoY2xpY2spPVwibmV4dE1vbnRoKClcIj5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMjAgNTEyXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNOTYgNDgwYy04LjE4OCAwLTE2LjM4LTMuMTI1LTIyLjYyLTkuMzc1Yy0xMi41LTEyLjUtMTIuNS0zMi43NSAwLTQ1LjI1TDI0Mi44IDI1Nkw3My4zOCA4Ni42M2MtMTIuNS0xMi41LTEyLjUtMzIuNzUgMC00NS4yNXMzMi43NS0xMi41IDQ1LjI1IDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi43NSAwIDQ1LjI1bC0xOTIgMTkyQzExMi40IDQ3Ni45IDEwNC4yIDQ4MCA5NiA0ODB6XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlcl9fZGF5cy1jb250YWluZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyX19kYXlzXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlzTWFwcGluZ1tsYW5ndWFnZV1bZGF5RGlzcGxheVR5cGVdOyBpbmRleCBhcyBpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXJfX3dlZWtkYXlcIj57eyBkYXkgfX08L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlcl9fZGF0ZS1jb250YWluZXJcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRlIG9mIGN1cnJlbnRNb250aERhdGFbaV1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJkYXRlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlcl9fZGF0ZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGF0ZXBpY2tlcl9fZGF0ZS0tYWN0aXZlXT1cIlxuICAgICAgICAgICAgICBkYXRlID09PSBzZWxlY3RlZERhdGU/LmRheSAmJlxuICAgICAgICAgICAgICBjdXJyZW50TmVwYWxpRGF0ZS5tb250aCA9PT0gc2VsZWN0ZWREYXRlPy5tb250aCAmJlxuICAgICAgICAgICAgICBjdXJyZW50TmVwYWxpRGF0ZS55ZWFyID09PSBzZWxlY3RlZERhdGU/LnllYXJcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuZGF0ZXBpY2tlcl9fZGF0ZS0tY3VycmVudC1kYXldPVwiXG4gICAgICAgICAgICAgIGRhdGUgPT09IG5lcGFsaURhdGVUb2RheS5kYXkgJiZcbiAgICAgICAgICAgICAgY3VycmVudE5lcGFsaURhdGUubW9udGggPT09IG5lcGFsaURhdGVUb2RheS5tb250aCAmJlxuICAgICAgICAgICAgICBjdXJyZW50TmVwYWxpRGF0ZS55ZWFyID09PSBuZXBhbGlEYXRlVG9kYXkueWVhclxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRhdGUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBkYXRlIHwgdG9OcDogbGFuZ3VhZ2U6XCJudW1iZXJcIiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZGF0ZVwiIGNsYXNzPVwiZGF0ZXBpY2tlcl9fZGF0ZS0tZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxzcGFuPiZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -399,7 +399,7 @@ class NpDatePickerComponent {
399
399
  this.hideInput = false;
400
400
  this.alwaysVisible = false;
401
401
  this.language = 'ne';
402
- this.monthDisplayType = 'modern';
402
+ this.monthDisplayType = 'default';
403
403
  this.dayDisplayType = 'short';
404
404
  this.dateFormatter = (selectedDate) => {
405
405
  const dd = selectedDate.day < 10 ? '0' + selectedDate.day : selectedDate.day;
@@ -605,7 +605,7 @@ NpDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
605
605
  useExisting: forwardRef(() => NpDatePickerComponent),
606
606
  multi: true,
607
607
  },
608
- ], ngImport: i0, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:18px 8px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:30px}.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:#f3f3f3;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:14px}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}.prev-month,.next-month{padding:5px;width:20px;height:20px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:25px}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:10px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\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": ToNpPipe }, encapsulation: i0.ViewEncapsulation.None });
608
+ ], ngImport: i0, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:12px 5px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:25px}.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:#f3f3f3;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}.datepicker__options-year-container select{border:none;color:#fff;background:none;font-size:14px;width:58px}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}.prev-month,.next-month{padding:5px;width:25px;height:25px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:1em}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:8px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\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": ToNpPipe }, encapsulation: i0.ViewEncapsulation.None });
609
609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NpDatePickerComponent, decorators: [{
610
610
  type: Component,
611
611
  args: [{ selector: 'np-datepicker', providers: [
@@ -614,7 +614,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
614
614
  useExisting: forwardRef(() => NpDatePickerComponent),
615
615
  multi: true,
616
616
  },
617
- ], encapsulation: ViewEncapsulation.None, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:18px 8px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:30px}.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:#f3f3f3;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:14px}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}.prev-month,.next-month{padding:5px;width:20px;height:20px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:25px}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:10px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\n"] }]
617
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"nepali-date-picker\" [ngClass]=\"theme\">\n \n <input\n class=\"np_datepicker_input\"\n type=\"text\"\n [value]=\"formattedDate\"\n (focus)=\"open()\"\n (keydown)=\"$event.preventDefault()\"\n aria-hidden=\"true\"\n [hidden]=\"hideInput\"\n />\n <a class=\"form-icon\" (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 <a class=\"prev-month\" (click)=\"prevMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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 <a class=\"next-month\" (click)=\"nextMonth()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\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\"\n />\n </svg>\n </a>\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.nepali-date-picker{position:relative;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:1em}.nepali-date-picker a.active svg{fill:#e45415;opacity:.9}.nepali-date-picker .form-icon svg{width:14px;opacity:.3;position:absolute;right:8px;top:12px;cursor:pointer}.datepicker__container{border:1px solid #eee;background:#fff;width:294px;box-shadow:#64646f33 0 7px 29px;position:absolute;z-index:99999}.datepicker__options-container{padding:12px 5px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;background-color:#e45415;color:#fff;line-height:25px}.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:#f3f3f3;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}.datepicker__options-year-container select{border:none;color:#fff;background:none;font-size:14px;width:58px}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}.prev-month,.next-month{padding:5px;width:25px;height:25px;display:block;opacity:.5;border-radius:50%;background:#f3f3f3;cursor:pointer;text-align:center;line-height:1em}.next-month:hover,.prev-month:hover{background:#ccc}.prev-month svg,.next-month svg{max-width:8px;height:auto}.prev-month{margin-right:5px}.next-month{margin-left:5px}.dark.nepali-date-picker a.active svg{fill:#000}.dark .datepicker__options-container{border-bottom:1px solid #000;background-color:#000;color:#fff}.dark select{color:#fff}.dark .datepicker__date--active.datepicker__date--active{background-color:#000;color:#fff}.dark .np_datepicker_input:focus-visible{outline:2px solid #000}.dark .datepicker__weekday{background-color:#111}.dark .datepicker__days{background-color:#333;border:1px solid #111}.dark .datepicker__date:hover{background-color:#111;color:#fff}.dark .datepicker__date-container{border-bottom:1px solid #222}.light.nepali-date-picker a.active svg{fill:#777}.light .datepicker__options-container{border-bottom:none;background-color:#fff;color:#777}.light select{color:#777}.light .datepicker__date--active.datepicker__date--active{background-color:#aaa;color:#fff}.light .np_datepicker_input:focus-visible{outline:1px solid #ddd}.lightblue.nepali-date-picker a.active svg{fill:#38c5f0da}.lightblue .datepicker__options-container{background-color:#38c5f0da;color:#fff}.lightblue select{color:#fff}.lightblue .datepicker__date--active.datepicker__date--active{background-color:#38c5f0da;color:#fff}.lightblue .np_datepicker_input:focus-visible{outline:2px solid #38c5f0da}.lightblue .np_datepicker_input:focus-visible{outline:1px solid #38c5f0da}\n"] }]
618
618
  }], ctorParameters: function () { return [{ type: NpDatePickerService }, { type: i0.ElementRef }]; }, propDecorators: { theme: [{
619
619
  type: Input
620
620
  }], language: [{