nira-falcon 1.0.5 → 1.0.7

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.
@@ -13,12 +13,17 @@ export class CoreCheckboxComponent {
13
13
  change(event) {
14
14
  this.onChange.emit(event);
15
15
  }
16
+ handleKey(event) {
17
+ if (event.key === 'Enter') {
18
+ this.checked = !this.checked;
19
+ }
20
+ }
16
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: { label: "label", name: "name", checked: "checked", inputFormControl: "inputFormControl" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"flex gap-3\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: { label: "label", name: "name", checked: "checked", inputFormControl: "inputFormControl" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"flex gap-3\" (keydown)=\"handleKey($event)\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
18
23
  }
19
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreCheckboxComponent, decorators: [{
20
25
  type: Component,
21
- args: [{ selector: 'core-checkbox', template: "<div class=\"flex gap-3\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"] }]
26
+ args: [{ selector: 'core-checkbox', template: "<div class=\"flex gap-3\" (keydown)=\"handleKey($event)\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"] }]
22
27
  }], propDecorators: { label: [{
23
28
  type: Input
24
29
  }], name: [{
@@ -30,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
30
35
  }], inputFormControl: [{
31
36
  type: Input
32
37
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS1jaGVja2JveC9jb3JlLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLWNoZWNrYm94L2NvcmUtY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU83QyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDWCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2YsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELHFCQUFnQixHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FLbEU7SUFIQyxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7K0dBVFUscUJBQXFCO21HQUFyQixxQkFBcUIsNExDUmxDLGtPQVNBOzs0RkREYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZUFBZTs4QkFLaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDaGVja2JveENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBuYW1lID0gJzEnO1xyXG4gIEBJbnB1dCgpIGNoZWNrZWQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGlucHV0Rm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbXSk7XHJcblxyXG4gIGNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxyXG4gIDxpbnB1dFxyXG4gICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJjaGVja2VkXCJcclxuICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxyXG4gIC8+XHJcbiAgPHNwYW4gY2xhc3M9XCJjaGVja21hcmtcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS1jaGVja2JveC9jb3JlLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLWNoZWNrYm94L2NvcmUtY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU83QyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDWCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2YsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELHFCQUFnQixHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FXbEU7SUFUQyxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUM5QjtJQUNILENBQUM7K0dBZlUscUJBQXFCO21HQUFyQixxQkFBcUIsNExDUmxDLGtRQVNBOzs0RkREYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZUFBZTs4QkFLaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDaGVja2JveENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBuYW1lID0gJzEnO1xyXG4gIEBJbnB1dCgpIGNoZWNrZWQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGlucHV0Rm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbXSk7XHJcblxyXG4gIGNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zXCIgKGtleWRvd24pPVwiaGFuZGxlS2V5KCRldmVudClcIj5cclxuICA8aW5wdXRcclxuICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgIFsobmdNb2RlbCldPVwiY2hlY2tlZFwiXHJcbiAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcclxuICAvPlxyXG4gIDxzcGFuIGNsYXNzPVwiY2hlY2ttYXJrXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -4,6 +4,7 @@ import { environment } from '../../environments/environment';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "nira-date-picker";
6
6
  import * as i2 from "../core-input/core-input.component";
7
+ import * as i3 from "../../svg-icon/calendar-today-icon/calendar-today-icon.component";
7
8
  export class CoreDatePickerComponent {
8
9
  set inputFormControl(value) {
9
10
  this._inputFormControl = value;
@@ -19,6 +20,20 @@ export class CoreDatePickerComponent {
19
20
  this.date = '';
20
21
  }
21
22
  ngOnInit() { }
23
+ onInput(event) {
24
+ const raw = event.target.value.replace(/\D/g, '');
25
+ if (raw.length > 8)
26
+ return;
27
+ let formatted = raw;
28
+ if (raw.length > 4) {
29
+ formatted = raw.slice(0, 4) + '-' + raw.slice(4);
30
+ }
31
+ if (raw.length > 6) {
32
+ formatted = formatted.slice(0, 7) + '-' + formatted.slice(7);
33
+ }
34
+ this.date = formatted;
35
+ this._inputFormControl.setValue(formatted);
36
+ }
22
37
  ngAfterViewInit() {
23
38
  this.changeDetectorRef.detectChanges();
24
39
  }
@@ -31,11 +46,11 @@ export class CoreDatePickerComponent {
31
46
  this._inputFormControl.setValue(todayDate);
32
47
  }
33
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: { canSelectToday: "canSelectToday", defaultDate: "defaultDate", label: "label", inputFormControl: "inputFormControl", size: "size" }, ngImport: i0, template: "<core-input\r\n [placeholder]=\"label\"\r\n [inputFormControl]=\"_inputFormControl\"\r\n (click)=\"isOpenCalendar = true\"\r\n>\r\n</core-input>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.NiraDatePickerComponent, selector: "lib-nira-date-picker", inputs: ["selectToday", "disable", "changableYears", "theme", "defaultDate", "isOpenCalendar"], outputs: ["isOpenCalendarChange", "todayDate", "datePickerResult"] }, { kind: "component", type: i2.CoreInputComponent, selector: "core-input", inputs: ["type", "canShowWordifyFa", "canSplitNumber", "canHighlightBackground", "maxLength", "size", "inputFormControl", "disable", "placeholder", "errorMessages"], outputs: ["onChange", "onBlurEmit"] }] }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: { canSelectToday: "canSelectToday", defaultDate: "defaultDate", label: "label", inputFormControl: "inputFormControl", size: "size" }, ngImport: i0, template: "<div class=\"container\">\r\n <core-input\r\n [placeholder]=\"''\"\r\n (input)=\"onInput($event)\"\r\n [inputFormControl]=\"_inputFormControl\"\r\n >\r\n </core-input>\r\n <!-- <input type=\"text\" [value]=\"date\" (input)=\"onInput($event)\" /> -->\r\n <calendar-today-icon\r\n class=\"icon\"\r\n (click)=\"isOpenCalendar = true\"\r\n ></calendar-today-icon>\r\n</div>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n", styles: [".container{position:relative}.container .icon{position:absolute;cursor:pointer;left:8px;top:6px;width:24px;height:24px;fill:#383838}\n"], dependencies: [{ kind: "component", type: i1.NiraDatePickerComponent, selector: "lib-nira-date-picker", inputs: ["selectToday", "disable", "changableYears", "theme", "defaultDate", "isOpenCalendar"], outputs: ["isOpenCalendarChange", "todayDate", "datePickerResult"] }, { kind: "component", type: i2.CoreInputComponent, selector: "core-input", inputs: ["type", "canShowWordifyFa", "canSplitNumber", "canHighlightBackground", "maxLength", "size", "inputFormControl", "disable", "placeholder", "errorMessages"], outputs: ["onChange", "onBlurEmit"] }, { kind: "component", type: i3.CalendarTodayIconComponent, selector: "calendar-today-icon" }] }); }
35
50
  }
36
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreDatePickerComponent, decorators: [{
37
52
  type: Component,
38
- args: [{ selector: 'core-date-picker', template: "<core-input\r\n [placeholder]=\"label\"\r\n [inputFormControl]=\"_inputFormControl\"\r\n (click)=\"isOpenCalendar = true\"\r\n>\r\n</core-input>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n" }]
53
+ args: [{ selector: 'core-date-picker', template: "<div class=\"container\">\r\n <core-input\r\n [placeholder]=\"''\"\r\n (input)=\"onInput($event)\"\r\n [inputFormControl]=\"_inputFormControl\"\r\n >\r\n </core-input>\r\n <!-- <input type=\"text\" [value]=\"date\" (input)=\"onInput($event)\" /> -->\r\n <calendar-today-icon\r\n class=\"icon\"\r\n (click)=\"isOpenCalendar = true\"\r\n ></calendar-today-icon>\r\n</div>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n", styles: [".container{position:relative}.container .icon{position:absolute;cursor:pointer;left:8px;top:6px;width:24px;height:24px;fill:#383838}\n"] }]
39
54
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { canSelectToday: [{
40
55
  type: Input
41
56
  }], defaultDate: [{
@@ -47,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
47
62
  }], size: [{
48
63
  type: Input
49
64
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXItZmFsY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQXlCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBTzdELE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFrQjtRQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFJRCxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVh4RCxzQkFBaUIsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbkMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUluQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25CLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLFNBQUksR0FBVyxFQUFFLENBQUM7SUFDeUMsQ0FBQztJQUM1RCxRQUFRLEtBQVUsQ0FBQztJQUVuQixlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELFdBQVcsQ0FBQyxTQUFpQjtRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBMUJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHNNQ2hCcEMsb2JBY0E7OzRGREVhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7d0dBT25CLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZGF0ZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWRhdGUtcGlja2VyJyArIGVudmlyb25tZW50LnRlbXBOYW1lLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtZGF0ZS1waWNrZXInICsgZW52aXJvbm1lbnQuc3R5bGVOYW1lXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVEYXRlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBfaW5wdXRGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW10pO1xyXG5cclxuICBASW5wdXQoKSBjYW5TZWxlY3RUb2RheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgc2V0IGlucHV0Rm9ybUNvbnRyb2wodmFsdWU6IEZvcm1Db250cm9sKSB7XHJcbiAgICB0aGlzLl9pbnB1dEZvcm1Db250cm9sID0gdmFsdWU7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNpemUgPSAnJztcclxuICBpc09wZW5DYWxlbmRhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGU6IHN0cmluZyA9ICcnO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkRhdGVQaWNrZXJSZXN1bHQocmVzdWx0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2lucHV0Rm9ybUNvbnRyb2wuc2V0VmFsdWUocmVzdWx0KTtcclxuICAgIHRoaXMuZGF0ZSA9IHJlc3VsdDtcclxuICB9XHJcbiAgb25Ub2RheURhdGUodG9kYXlEYXRlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGF0ZSA9IHRvZGF5RGF0ZTtcclxuICAgIHRoaXMuX2lucHV0Rm9ybUNvbnRyb2wuc2V0VmFsdWUodG9kYXlEYXRlKTtcclxuICB9XHJcbn1cclxuIiwiPGNvcmUtaW5wdXRcclxuICBbcGxhY2Vob2xkZXJdPVwibGFiZWxcIlxyXG4gIFtpbnB1dEZvcm1Db250cm9sXT1cIl9pbnB1dEZvcm1Db250cm9sXCJcclxuICAoY2xpY2spPVwiaXNPcGVuQ2FsZW5kYXIgPSB0cnVlXCJcclxuPlxyXG48L2NvcmUtaW5wdXQ+XHJcbjxsaWItbmlyYS1kYXRlLXBpY2tlclxyXG4gIFsoaXNPcGVuQ2FsZW5kYXIpXT1cImlzT3BlbkNhbGVuZGFyXCJcclxuICBbZGVmYXVsdERhdGVdPVwiZGF0ZSA/IGRhdGUgOiBkZWZhdWx0RGF0ZVwiXHJcbiAgKGRhdGVQaWNrZXJSZXN1bHQpPVwib25EYXRlUGlja2VyUmVzdWx0KCRldmVudClcIlxyXG4gIFtzZWxlY3RUb2RheV09XCJjYW5TZWxlY3RUb2RheVwiXHJcbiAgKHRvZGF5RGF0ZSk9XCJvblRvZGF5RGF0ZSgkZXZlbnQpXCJcclxuPlxyXG48L2xpYi1uaXJhLWRhdGUtcGlja2VyPlxyXG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXItZmFsY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQXlCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQU83RCxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLElBQWEsZ0JBQWdCLENBQUMsS0FBa0I7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBSUQsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFYeEQsc0JBQWlCLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFJbkIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ3lDLENBQUM7SUFDNUQsUUFBUSxLQUFVLENBQUM7SUFFbkIsT0FBTyxDQUFDLEtBQVU7UUFDaEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDM0IsSUFBSSxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbEIsU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUQ7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELFdBQVcsQ0FBQyxTQUFpQjtRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBdkNVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHNNQ2hCcEMsdXFCQXFCQTs7NEZETGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQjt3R0FPbkIsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1kYXRlLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtZGF0ZS1waWNrZXInICsgZW52aXJvbm1lbnQudGVtcE5hbWUsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1kYXRlLXBpY2tlcicgKyBlbnZpcm9ubWVudC5zdHlsZU5hbWVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZURhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIF9pbnB1dEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbXSk7XHJcblxyXG4gIEBJbnB1dCgpIGNhblNlbGVjdFRvZGF5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVmYXVsdERhdGU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBzZXQgaW5wdXRGb3JtQ29udHJvbCh2YWx1ZTogRm9ybUNvbnRyb2wpIHtcclxuICAgIHRoaXMuX2lucHV0Rm9ybUNvbnRyb2wgPSB2YWx1ZTtcclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZSA9ICcnO1xyXG4gIGlzT3BlbkNhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZTogc3RyaW5nID0gJyc7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHJhdyA9IGV2ZW50LnRhcmdldC52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG5cclxuICAgIGlmIChyYXcubGVuZ3RoID4gOCkgcmV0dXJuO1xyXG4gICAgbGV0IGZvcm1hdHRlZCA9IHJhdztcclxuICAgIGlmIChyYXcubGVuZ3RoID4gNCkge1xyXG4gICAgICBmb3JtYXR0ZWQgPSByYXcuc2xpY2UoMCwgNCkgKyAnLScgKyByYXcuc2xpY2UoNCk7XHJcbiAgICB9XHJcbiAgICBpZiAocmF3Lmxlbmd0aCA+IDYpIHtcclxuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnNsaWNlKDAsIDcpICsgJy0nICsgZm9ybWF0dGVkLnNsaWNlKDcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlID0gZm9ybWF0dGVkO1xyXG4gICAgdGhpcy5faW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZShmb3JtYXR0ZWQpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgb25EYXRlUGlja2VyUmVzdWx0KHJlc3VsdDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHJlc3VsdCk7XHJcbiAgICB0aGlzLmRhdGUgPSByZXN1bHQ7XHJcbiAgfVxyXG4gIG9uVG9kYXlEYXRlKHRvZGF5RGF0ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhdGUgPSB0b2RheURhdGU7XHJcbiAgICB0aGlzLl9pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHRvZGF5RGF0ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8Y29yZS1pbnB1dFxyXG4gICAgW3BsYWNlaG9sZGVyXT1cIicnXCJcclxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgW2lucHV0Rm9ybUNvbnRyb2xdPVwiX2lucHV0Rm9ybUNvbnRyb2xcIlxyXG4gID5cclxuICA8L2NvcmUtaW5wdXQ+XHJcbiAgPCEtLSA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwiZGF0ZVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiAvPiAtLT5cclxuICA8Y2FsZW5kYXItdG9kYXktaWNvblxyXG4gICAgY2xhc3M9XCJpY29uXCJcclxuICAgIChjbGljayk9XCJpc09wZW5DYWxlbmRhciA9IHRydWVcIlxyXG4gID48L2NhbGVuZGFyLXRvZGF5LWljb24+XHJcbjwvZGl2PlxyXG48bGliLW5pcmEtZGF0ZS1waWNrZXJcclxuICBbKGlzT3BlbkNhbGVuZGFyKV09XCJpc09wZW5DYWxlbmRhclwiXHJcbiAgW2RlZmF1bHREYXRlXT1cImRhdGUgPyBkYXRlIDogZGVmYXVsdERhdGVcIlxyXG4gIChkYXRlUGlja2VyUmVzdWx0KT1cIm9uRGF0ZVBpY2tlclJlc3VsdCgkZXZlbnQpXCJcclxuICBbc2VsZWN0VG9kYXldPVwiY2FuU2VsZWN0VG9kYXlcIlxyXG4gICh0b2RheURhdGUpPVwib25Ub2RheURhdGUoJGV2ZW50KVwiXHJcbj5cclxuPC9saWItbmlyYS1kYXRlLXBpY2tlcj5cclxuIl19
@@ -50,12 +50,31 @@ export class CoreRadioButtonsComponent {
50
50
  this.selectedItem = item;
51
51
  this.onChange.emit(String(item.value));
52
52
  }
53
+ handleKey(event) {
54
+ const currentIndex = this.newItems.findIndex((item) => item.value === this.selectedItem.value);
55
+ switch (event.key) {
56
+ case 'ArrowLeft':
57
+ event.preventDefault();
58
+ if (this.newItems.length - 1 > currentIndex) {
59
+ this.selectedItem = this.newItems[currentIndex + 1];
60
+ this.onChange.emit(String(this.selectedItem.value));
61
+ }
62
+ break;
63
+ case 'ArrowRight':
64
+ event.preventDefault();
65
+ if (currentIndex > 0) {
66
+ this.selectedItem = this.newItems[currentIndex - 1];
67
+ this.onChange.emit(String(this.selectedItem.value));
68
+ }
69
+ break;
70
+ }
71
+ }
53
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreRadioButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreRadioButtonsComponent, selector: "core-radio-buttons", inputs: { items: "items", defaultValue: "defaultValue", titleKey: "titleKey", valueKey: "valueKey", layout: "layout", name: "name" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"root\" [ngClass]=\"{ 'container-row': layout == 'row' }\">\r\n <div\r\n class=\"radio-bottom\"\r\n [ngClass]=\"{ 'item-row-reverse': layout == 'row' }\"\r\n *ngFor=\"let item of newItems\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"item.value == selectedItem.value\"\r\n [checked]=\"item.value == selectedItem.value\"\r\n (click)=\"onItemClick(item)\"\r\n />\r\n <span class=\"label\">{{ item.title }}</span>\r\n </div>\r\n</div>\r\n", styles: [".root{display:flex;flex-direction:column;gap:6px}.container-row{flex-direction:row}.item-row-reverse{display:flex;flex-direction:row-reverse}.radio-bottom{display:inline-flex;flex-direction:row;align-items:center;margin-left:auto;cursor:pointer;-webkit-user-select:none;user-select:none}input[type=radio]{appearance:none;width:18px;height:18px;border-radius:50%;background-clip:content-box;border:1px solid var(--default-radio-buttons-input-border-color);background-color:var(--default-radio-buttons-input-background-color)}input[type=radio]:checked{background-color:var(--default-radio-buttons-background-color);padding:4px;border:2px solid var(--default-radio-buttons-border-color)}.label{font-size:small;font-weight:500;margin-inline:4px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreRadioButtonsComponent, selector: "core-radio-buttons", inputs: { items: "items", defaultValue: "defaultValue", titleKey: "titleKey", valueKey: "valueKey", layout: "layout", name: "name" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div\r\n class=\"root\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'container-row': layout == 'row' }\"\r\n>\r\n <div\r\n class=\"radio-bottom\"\r\n [ngClass]=\"{ 'item-row-reverse': layout == 'row' }\"\r\n *ngFor=\"let item of newItems\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"item.value == selectedItem.value\"\r\n [checked]=\"item.value == selectedItem.value\"\r\n (click)=\"onItemClick(item)\"\r\n />\r\n <span class=\"label\">{{ item.title }}</span>\r\n </div>\r\n</div>\r\n", styles: [".root{display:flex;flex-direction:column;gap:6px}.container-row{flex-direction:row}.item-row-reverse{display:flex;flex-direction:row-reverse}.radio-bottom{display:inline-flex;flex-direction:row;align-items:center;margin-left:auto;cursor:pointer;-webkit-user-select:none;user-select:none}input[type=radio]{appearance:none;width:18px;height:18px;border-radius:50%;background-clip:content-box;border:1px solid var(--default-radio-buttons-input-border-color);background-color:var(--default-radio-buttons-input-background-color)}input[type=radio]:checked{background-color:var(--default-radio-buttons-background-color);padding:4px;border:2px solid var(--default-radio-buttons-border-color)}.label{font-size:small;font-weight:500;margin-inline:4px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
55
74
  }
56
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreRadioButtonsComponent, decorators: [{
57
76
  type: Component,
58
- args: [{ selector: 'core-radio-buttons', template: "<div class=\"root\" [ngClass]=\"{ 'container-row': layout == 'row' }\">\r\n <div\r\n class=\"radio-bottom\"\r\n [ngClass]=\"{ 'item-row-reverse': layout == 'row' }\"\r\n *ngFor=\"let item of newItems\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"item.value == selectedItem.value\"\r\n [checked]=\"item.value == selectedItem.value\"\r\n (click)=\"onItemClick(item)\"\r\n />\r\n <span class=\"label\">{{ item.title }}</span>\r\n </div>\r\n</div>\r\n", styles: [".root{display:flex;flex-direction:column;gap:6px}.container-row{flex-direction:row}.item-row-reverse{display:flex;flex-direction:row-reverse}.radio-bottom{display:inline-flex;flex-direction:row;align-items:center;margin-left:auto;cursor:pointer;-webkit-user-select:none;user-select:none}input[type=radio]{appearance:none;width:18px;height:18px;border-radius:50%;background-clip:content-box;border:1px solid var(--default-radio-buttons-input-border-color);background-color:var(--default-radio-buttons-input-background-color)}input[type=radio]:checked{background-color:var(--default-radio-buttons-background-color);padding:4px;border:2px solid var(--default-radio-buttons-border-color)}.label{font-size:small;font-weight:500;margin-inline:4px}\n"] }]
77
+ args: [{ selector: 'core-radio-buttons', template: "<div\r\n class=\"root\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'container-row': layout == 'row' }\"\r\n>\r\n <div\r\n class=\"radio-bottom\"\r\n [ngClass]=\"{ 'item-row-reverse': layout == 'row' }\"\r\n *ngFor=\"let item of newItems\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"item.value == selectedItem.value\"\r\n [checked]=\"item.value == selectedItem.value\"\r\n (click)=\"onItemClick(item)\"\r\n />\r\n <span class=\"label\">{{ item.title }}</span>\r\n </div>\r\n</div>\r\n", styles: [".root{display:flex;flex-direction:column;gap:6px}.container-row{flex-direction:row}.item-row-reverse{display:flex;flex-direction:row-reverse}.radio-bottom{display:inline-flex;flex-direction:row;align-items:center;margin-left:auto;cursor:pointer;-webkit-user-select:none;user-select:none}input[type=radio]{appearance:none;width:18px;height:18px;border-radius:50%;background-clip:content-box;border:1px solid var(--default-radio-buttons-input-border-color);background-color:var(--default-radio-buttons-input-background-color)}input[type=radio]:checked{background-color:var(--default-radio-buttons-background-color);padding:4px;border:2px solid var(--default-radio-buttons-border-color)}.label{font-size:small;font-weight:500;margin-inline:4px}\n"] }]
59
78
  }], propDecorators: { items: [{
60
79
  type: Input
61
80
  }], defaultValue: [{
@@ -72,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
72
91
  }], onChange: [{
73
92
  type: Output
74
93
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1yYWRpby1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXJhZGlvLWJ1dHRvbnMvY29yZS1yYWRpby1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXJhZGlvLWJ1dHRvbnMvY29yZS1yYWRpby1idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVcvRSxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTUUsaUJBQVksR0FBZ0IsRUFBaUIsQ0FBQztRQUc5QyxrQkFBYSxHQUFHLFNBQVMsQ0FBQztRQUMxQixhQUFRLEdBQWtCLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBYVAsV0FBTSxHQUF1QixRQUFRLENBQUM7UUFDdEMsU0FBSSxHQUFXLE9BQU8sQ0FBQztRQUN0QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQThCakQ7SUE1Q0MsSUFBYSxLQUFLLENBQUMsSUFBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQStCLFlBQVksQ0FBQyxJQUFTO1FBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBTUQsZUFBZSxDQUFDLEtBQVk7UUFDMUIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDeEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUNqQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBcUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFxQixDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQy9ELENBQUM7U0FDSDtJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsSUFBNkI7UUFDdkMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQW5EVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixtT0NYdEMsOGlCQWlCQTs7NEZETmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFZakIsS0FBSztzQkFBakIsS0FBSztnQkFLeUIsWUFBWTtzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS2hCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbnR5cGUgTWVudUl0ZW08VD4gPSB7XHJcbiAgdGl0bGU6IFQ7XHJcbiAgdmFsdWU6IFQ7XHJcbn07XHJcbnR5cGUgTGF5b3V0UmFkaW9CdXR0b25zID0gJ3JvdycgfCAnY29sdW1uJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLXJhZGlvLWJ1dHRvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXJhZGlvLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtcmFkaW8tYnV0dG9ucy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVJhZGlvQnV0dG9uc0NvbXBvbmVudDxUPiB7XHJcbiAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gIHRpdGxlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHZhbHVlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIF9kZWZhdWx0VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgbmV3SXRlbXM6IE1lbnVJdGVtPFQ+W10gPSBbXTtcclxuICBfaXRlbXM6IGFueSA9IFtdO1xyXG4gIGluaXRDb3VudGVyID0gMDtcclxuICBASW5wdXQoKSBzZXQgaXRlbXMoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLl9pdGVtcyA9IGRhdGE7XHJcbiAgICB0aGlzLmluaXRDb3VudGVyKys7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc2V0IGRlZmF1bHRWYWx1ZShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IGRhdGE7XHJcbiAgICB0aGlzLmluaXRDb3VudGVyKys7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgdGl0bGVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGF5b3V0OiBMYXlvdXRSYWRpb0J1dHRvbnMgPSAnY29sdW1uJztcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAncmFkaW8nO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGNoYW5nZUl0ZW1zVHlwZShpdGVtczogYW55W10pOiBNZW51SXRlbTxUPltdIHtcclxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0aXRsZTogaXRlbVt0aGlzLnRpdGxlS2V5T2JqZWN0XSxcclxuICAgICAgICB2YWx1ZTogaXRlbVt0aGlzLnZhbHVlS2V5T2JqZWN0XSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBpbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaW5pdENvdW50ZXIgIT09IDIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdHlwZSBPYmplY3RLZXkgPSAodHlwZW9mIHRoaXMuX2l0ZW1zKVswXTtcclxuICAgIHRoaXMudGl0bGVLZXlPYmplY3QgPSB0aGlzLnRpdGxlS2V5IGFzIE9iamVjdEtleTtcclxuICAgIHRoaXMudmFsdWVLZXlPYmplY3QgPSB0aGlzLnZhbHVlS2V5IGFzIE9iamVjdEtleTtcclxuICAgIHRoaXMubmV3SXRlbXMgPSB0aGlzLmNoYW5nZUl0ZW1zVHlwZSh0aGlzLl9pdGVtcyk7XHJcbiAgICBpZiAodGhpcy5fZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vbkl0ZW1DbGljayh0aGlzLm5ld0l0ZW1zWzBdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25JdGVtQ2xpY2soXHJcbiAgICAgICAgdGhpcy5uZXdJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09IHRoaXMuX2RlZmF1bHRWYWx1ZSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25JdGVtQ2xpY2soaXRlbTogTWVudUl0ZW08VD4gfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmICghaXRlbSkgcmV0dXJuO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KFN0cmluZyhpdGVtLnZhbHVlKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb290XCIgW25nQ2xhc3NdPVwieyAnY29udGFpbmVyLXJvdyc6IGxheW91dCA9PSAncm93JyB9XCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJyYWRpby1ib3R0b21cIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnaXRlbS1yb3ctcmV2ZXJzZSc6IGxheW91dCA9PSAncm93JyB9XCJcclxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5ld0l0ZW1zXCJcclxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZSA9PSBzZWxlY3RlZEl0ZW0udmFsdWVcIlxyXG4gICAgICBbY2hlY2tlZF09XCJpdGVtLnZhbHVlID09IHNlbGVjdGVkSXRlbS52YWx1ZVwiXHJcbiAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXHJcbiAgICAvPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1yYWRpby1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXJhZGlvLWJ1dHRvbnMvY29yZS1yYWRpby1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXJhZGlvLWJ1dHRvbnMvY29yZS1yYWRpby1idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVcvRSxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTUUsaUJBQVksR0FBZ0IsRUFBaUIsQ0FBQztRQUc5QyxrQkFBYSxHQUFHLFNBQVMsQ0FBQztRQUMxQixhQUFRLEdBQWtCLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBYVAsV0FBTSxHQUF1QixRQUFRLENBQUM7UUFDdEMsU0FBSSxHQUFXLE9BQU8sQ0FBQztRQUN0QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQW9EakQ7SUFsRUMsSUFBYSxLQUFLLENBQUMsSUFBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQStCLFlBQVksQ0FBQyxJQUFTO1FBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lB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aEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxudHlwZSBNZW51SXRlbTxUPiA9IHtcclxuICB0aXRsZTogVDtcclxuICB2YWx1ZTogVDtcclxufTtcclxudHlwZSBMYXlvdXRSYWRpb0J1dHRvbnMgPSAncm93JyB8ICdjb2x1bW4nO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtcmFkaW8tYnV0dG9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtcmFkaW8tYnV0dG9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1yYWRpby1idXR0b25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlUmFkaW9CdXR0b25zQ29tcG9uZW50PFQ+IHtcclxuICBzZWxlY3RlZEl0ZW06IE1lbnVJdGVtPFQ+ID0ge30gYXMgTWVudUl0ZW08VD47XHJcbiAgdGl0bGVLZXlPYmplY3QhOiBrZXlvZiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgdmFsdWVLZXlPYmplY3QhOiBrZXlvZiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgX2RlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICBuZXdJdGVtczogTWVudUl0ZW08VD5bXSA9IFtdO1xyXG4gIF9pdGVtczogYW55ID0gW107XHJcbiAgaW5pdENvdW50ZXIgPSAwO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdENvdW50ZXIrKztcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgZGVmYXVsdFZhbHVlKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdENvdW50ZXIrKztcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSB0aXRsZUtleSE6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWx1ZUtleSE6IHN0cmluZztcclxuICBASW5wdXQoKSBsYXlvdXQ6IExheW91dFJhZGlvQnV0dG9ucyA9ICdjb2x1bW4nO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9ICdyYWRpbyc7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgY2hhbmdlSXRlbXNUeXBlKGl0ZW1zOiBhbnlbXSk6IE1lbnVJdGVtPFQ+W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHRpdGxlOiBpdGVtW3RoaXMudGl0bGVLZXlPYmplY3RdLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5pbml0Q291bnRlciAhPT0gMikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0eXBlIE9iamVjdEtleSA9ICh0eXBlb2YgdGhpcy5faXRlbXMpWzBdO1xyXG4gICAgdGhpcy50aXRsZUtleU9iamVjdCA9IHRoaXMudGl0bGVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy52YWx1ZUtleU9iamVjdCA9IHRoaXMudmFsdWVLZXkgYXMgT2JqZWN0S2V5O1xyXG4gICAgdGhpcy5uZXdJdGVtcyA9IHRoaXMuY2hhbmdlSXRlbXNUeXBlKHRoaXMuX2l0ZW1zKTtcclxuICAgIGlmICh0aGlzLl9kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLm9uSXRlbUNsaWNrKHRoaXMubmV3SXRlbXNbMF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbkl0ZW1DbGljayhcclxuICAgICAgICB0aGlzLm5ld0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT0gdGhpcy5fZGVmYXVsdFZhbHVlKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkl0ZW1DbGljayhpdGVtOiBNZW51SXRlbTxUPiB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKCFpdGVtKSByZXR1cm47XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoU3RyaW5nKGl0ZW0udmFsdWUpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5uZXdJdGVtcy5maW5kSW5kZXgoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkSXRlbS52YWx1ZVxyXG4gICAgKTtcclxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAodGhpcy5uZXdJdGVtcy5sZW5ndGggLSAxID4gY3VycmVudEluZGV4KSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMubmV3SXRlbXNbY3VycmVudEluZGV4ICsgMV07XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoU3RyaW5nKHRoaXMuc2VsZWN0ZWRJdGVtLnZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMubmV3SXRlbXNbY3VycmVudEluZGV4IC0gMV07XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoU3RyaW5nKHRoaXMuc2VsZWN0ZWRJdGVtLnZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJyb290XCJcclxuICAoa2V5ZG93bik9XCJoYW5kbGVLZXkoJGV2ZW50KVwiXHJcbiAgW25nQ2xhc3NdPVwieyAnY29udGFpbmVyLXJvdyc6IGxheW91dCA9PSAncm93JyB9XCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwicmFkaW8tYm90dG9tXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2l0ZW0tcm93LXJldmVyc2UnOiBsYXlvdXQgPT0gJ3JvdycgfVwiXHJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuZXdJdGVtc1wiXHJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxyXG4gID5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWUgPT0gc2VsZWN0ZWRJdGVtLnZhbHVlXCJcclxuICAgICAgW2NoZWNrZWRdPVwiaXRlbS52YWx1ZSA9PSBzZWxlY3RlZEl0ZW0udmFsdWVcIlxyXG4gICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxyXG4gICAgLz5cclxuICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -18,6 +18,7 @@ export class CoreSelectComponent {
18
18
  this.cdr = cdr;
19
19
  this.elRef = elRef;
20
20
  this.selectedItem = {};
21
+ this.focusItem = undefined;
21
22
  this.newItems = [];
22
23
  this.isOpenMenu = false;
23
24
  this._items = [];
@@ -51,31 +52,33 @@ export class CoreSelectComponent {
51
52
  if (this.disabled)
52
53
  return;
53
54
  this.isOpenMenu = !this.isOpenMenu;
54
- if (this.isOpenMenu && canFocus) {
55
- setTimeout(() => {
56
- const element = this.focusableElements.toArray();
57
- element[0].nativeElement.focus();
58
- }, 50);
59
- }
60
55
  }
61
56
  handleKey(event) {
62
- const elements = this.focusableElements.toArray();
63
- if (event.key === 'ArrowDown') {
64
- this.currentIndex = (this.currentIndex + 1) % elements.length;
65
- elements[this.currentIndex].nativeElement.focus();
66
- }
67
- if (event.key === 'ArrowUp') {
68
- this.currentIndex =
69
- (this.currentIndex - 1 + elements.length) % elements.length;
70
- elements[this.currentIndex].nativeElement.focus();
71
- }
72
- }
73
- dropdownItemKeypress(event, item) {
74
- if (event.key === 'Enter') {
75
- this.onItemSelect(item, true);
76
- }
77
- else if (event.key === 'Escape') {
78
- this.isOpenMenu = false;
57
+ const currentItemIndex = this._items.findIndex((item) => item[this.valueKeyObject] === this.focusItem?.value);
58
+ switch (event.key) {
59
+ case 'Enter':
60
+ this.isOpenMenu = !this.isOpenMenu;
61
+ if (this.focusItem)
62
+ this.selectedItem = this.focusItem;
63
+ break;
64
+ case ' ':
65
+ this.isOpenMenu = !this.isOpenMenu;
66
+ break;
67
+ case 'Escape':
68
+ event.preventDefault();
69
+ this.isOpenMenu = false;
70
+ break;
71
+ case 'ArrowDown':
72
+ if (this.isOpenMenu && this._items.length - 1 > currentItemIndex)
73
+ this.focusItem = this._items[currentItemIndex + 1];
74
+ break;
75
+ case 'ArrowUp':
76
+ if (this.isOpenMenu && currentItemIndex > 0)
77
+ this.focusItem = this._items[currentItemIndex - 1];
78
+ break;
79
+ case 'Tab':
80
+ this.isOpenMenu = false;
81
+ break;
79
82
  }
80
83
  }
81
84
  onItemSelect(selectedItem, isFromUi) {
@@ -84,19 +87,16 @@ export class CoreSelectComponent {
84
87
  this.isOpenMenu = false;
85
88
  if (!selectedItem) {
86
89
  this.selectedItem = {};
90
+ this.focusItem = undefined;
87
91
  this.inputFormControl.reset();
88
92
  return;
89
93
  }
90
94
  this.selectedItem = selectedItem;
95
+ this.focusItem = selectedItem;
91
96
  const mainItem = this._items.find((item) => item[this.valueKeyObject] === selectedItem.value);
92
97
  this.inputFormControl.setValue(selectedItem.value);
93
98
  this.onItemSelected.emit(mainItem);
94
99
  }
95
- onEnterPress(e) {
96
- if (e.key === 'Enter') {
97
- this.openMenuClick(true);
98
- }
99
- }
100
100
  focusOut(event) {
101
101
  const nextFocusedElement = event.relatedTarget;
102
102
  if (!nextFocusedElement ||
@@ -106,11 +106,11 @@ export class CoreSelectComponent {
106
106
  }
107
107
  }
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "focusableElements", predicate: ["focusable"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keypress)=\"onEnterPress($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n (keypress)=\"dropdownItemKeypress($event, item)\"\r\n tabindex=\"0\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:1px solid rgba(19,92,175,.397);outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu li:focus{outline:none}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WarningIconComponent, selector: "warning-icon" }, { kind: "component", type: i3.ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "focusableElements", predicate: ["focusable"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n tabindex=\"0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473);outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu li:focus{outline:none}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WarningIconComponent, selector: "warning-icon" }, { kind: "component", type: i3.ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, decorators: [{
112
112
  type: Component,
113
- args: [{ selector: 'core-select', template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keypress)=\"onEnterPress($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item == selectedItem }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n (keypress)=\"dropdownItemKeypress($event, item)\"\r\n tabindex=\"0\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:1px solid rgba(19,92,175,.397);outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu li:focus{outline:none}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"] }]
113
+ args: [{ selector: 'core-select', template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n tabindex=\"0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473);outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu li:focus{outline:none}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"] }]
114
114
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { titleKey: [{
115
115
  type: Input
116
116
  }], valueKey: [{
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
135
135
  type: ViewChildren,
136
136
  args: ['focusable']
137
137
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtc2VsZWN0L2NvcmUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC9jb3JlLXNlbGVjdC1mYWxjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFVN0QsTUFBTSxPQUFPLG1CQUFtQjtJQVk5QixJQUFhLEtBQUssQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFhLFlBQVksQ0FBQyxJQUFPO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFRRCxZQUFvQixHQUFzQixFQUFVLEtBQWlCO1FBQWpELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQTFCckUsaUJBQVksR0FBZ0IsRUFBaUIsQ0FBQztRQUc5QyxhQUFRLEdBQWtCLEVBQUUsQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFJUixTQUFJLEdBQVcsT0FBTyxDQUFDO1FBQ3ZCLDJCQUFzQixHQUFH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YUFBYSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUN0RDtZQUNBLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN2QztJQUNILENBQUM7K0dBbkhVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHViQ3RCaEMsNHpFQTBFQTs7NEZEcERhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO2lJQVlkLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDcUIsaUJBQWlCO3NCQUEzQyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XHJcbnR5cGUgTWVudUl0ZW08VD4gPSB7XHJcbiAgdGl0bGU6IFQ7XHJcbiAgdmFsdWU6IFQ7XHJcbn07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC50ZW1wTmFtZSxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXNlbGVjdCcgKyBlbnZpcm9ubWVudC5zdHlsZU5hbWVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVNlbGVjdENvbXBvbmVudDxUPiB7XHJcbiAgc2VsZWN0ZWRJdGVtOiBNZW51SXRlbTxUPiA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gIHRpdGxlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHZhbHVlS2V5T2JqZWN0IToga2V5b2Ygc3RyaW5nIHwgbnVtYmVyO1xyXG4gIG5ld0l0ZW1zOiBNZW51SXRlbTxUPltdID0gW107XHJcbiAgaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gIF9pdGVtczogYW55ID0gW107XHJcbiAgX2RlZmF1bHRWYWx1ZSE6IFQ7XHJcbiAgQElucHV0KCkgdGl0bGVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJ3NtYWxsJztcclxuICBASW5wdXQoKSBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5faXRlbXMgPSBkYXRhO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0VmFsdWUoZGF0YTogVCkge1xyXG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBpbnB1dEZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW10pO1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2ZvY3VzYWJsZScpIGZvY3VzYWJsZUVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG4gIGN1cnJlbnRJbmRleCA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge31cclxuICBpbml0KCkge1xyXG4gICAgdHlwZSBPYmplY3RLZXkgPSAodHlwZW9mIHRoaXMuX2l0ZW1zKVswXTtcclxuICAgIHRoaXMudGl0bGVLZXlPYmplY3QgPSB0aGlzLnRpdGxlS2V5IGFzIE9iamVjdEtleTtcclxuICAgIHRoaXMudmFsdWVLZXlPYmplY3QgPSB0aGlzLnZhbHVlS2V5IGFzIE9iamVjdEtleTtcclxuICAgIHRoaXMubmV3SXRlbXMgPSB0aGlzLmNoYW5nZUl0ZW1zVHlwZSh0aGlzLl9pdGVtcyk7XHJcbiAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5fZGVmYXVsdFZhbHVlKTtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0KFxyXG4gICAgICB0aGlzLm5ld0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT0gdGhpcy5fZGVmYXVsdFZhbHVlKSxcclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VJdGVtc1R5cGUoaXRlbXM6IGFueVtdKTogTWVudUl0ZW08VD5bXSB7XHJcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdGl0bGU6IGl0ZW1bdGhpcy50aXRsZUtleU9iamVjdF0sXHJcbiAgICAgICAgdmFsdWU6IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0sXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5NZW51Q2xpY2soY2FuRm9jdXM6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmlzT3Blbk1lbnUgPSAhdGhpcy5pc09wZW5NZW51O1xyXG4gICAgaWYgKHRoaXMuaXNPcGVuTWVudSAmJiBjYW5Gb2N1cykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5mb2N1c2FibGVFbGVtZW50cy50b0FycmF5KCk7XHJcbiAgICAgICAgZWxlbWVudFswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH0sIDUwKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGFuZGxlS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZm9jdXNhYmxlRWxlbWVudHMudG9BcnJheSgpO1xyXG5cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gKHRoaXMuY3VycmVudEluZGV4ICsgMSkgJSBlbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgIGVsZW1lbnRzW3RoaXMuY3VycmVudEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID1cclxuICAgICAgICAodGhpcy5jdXJyZW50SW5kZXggLSAxICsgZWxlbWVudHMubGVuZ3RoKSAlIGVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgZWxlbWVudHNbdGhpcy5jdXJyZW50SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyb3Bkb3duSXRlbUtleXByZXNzKGV2ZW50OiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLm9uSXRlbVNlbGVjdChpdGVtLCB0cnVlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbVNlbGVjdChzZWxlY3RlZEl0ZW06IE1lbnVJdGVtPFQ+IHwgdW5kZWZpbmVkLCBpc0Zyb21VaTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGlzRnJvbVVpKSB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICBpZiAoIXNlbGVjdGVkSXRlbSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW07XHJcbiAgICBjb25zdCBtYWluSXRlbSA9IHRoaXMuX2l0ZW1zLmZpbmQoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0gPT09IHNlbGVjdGVkSXRlbS52YWx1ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3RlZEl0ZW0udmFsdWUpO1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3RlZC5lbWl0KG1haW5JdGVtKTtcclxuICB9XHJcbiAgb25FbnRlclByZXNzKGU6IGFueSkge1xyXG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMub3Blbk1lbnVDbGljayh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAhbmV4dEZvY3VzZWRFbGVtZW50IHx8XHJcbiAgICAgICF0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMobmV4dEZvY3VzZWRFbGVtZW50KVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNPcGVuTWVudSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiAoZm9jdXNvdXQpPVwiZm9jdXNPdXQoJGV2ZW50KVwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ3NlbGVjdC1jbGlja2VkJzogaXNPcGVuTWVudSxcclxuICAgICAgJ2hpZ2hsaWdodC1iYWNrZ3JvdW5kJzpcclxuICAgICAgICBjYW5IaWdobGlnaHRCYWNrZ3JvdW5kICYmXHJcbiAgICAgICAgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09PSAoe30gfCBqc29uKSAmJlxyXG4gICAgICAgICEoaW5wdXRGb3JtQ29udHJvbC50b3VjaGVkICYmIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzKSxcclxuICAgICAgc2VsZWN0RXJyb3I6IGlucHV0Rm9ybUNvbnRyb2wudG91Y2hlZCAmJiBpbnB1dEZvcm1Db250cm9sLmVycm9ycyAsXHJcbiAgICAgICdkaXNhYmxlLXNlbGVjdG9yJzogZGlzYWJsZWQsXHJcblxyXG4gICAgfVwiXHJcbiAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgKGtleXByZXNzKT1cIm9uRW50ZXJQcmVzcygkZXZlbnQpXCJcclxuICAgIChjbGljayk9XCJvcGVuTWVudUNsaWNrKGZhbHNlKVwiXHJcbiAgPlxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJwbGFjZWhvbGRlci10b3BcIlxyXG4gICAgICAqbmdJZj1cIihzZWxlY3RlZEl0ZW0gfCBqc29uKSAhPSAoe30gfCBqc29uKVwiXHJcbiAgICAgID57eyBsYWJlbCB9fTwvc3BhblxyXG4gICAgPlxyXG4gICAgPGFycm93LWRvd24taWNvblxyXG4gICAgICBjbGFzcz1cImNhcmV0IGZpbGwtc2Vjb25kYXJ5LXRleHQtY29sb3IgaC02XCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnY2FyZXQtcm90YXRlJzogaXNPcGVuTWVudSB9XCJcclxuICAgID48L2Fycm93LWRvd24taWNvbj5cclxuXHJcbiAgICA8c3BhblxyXG4gICAgICBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAoc2VsZWN0ZWRJdGVtIHwganNvbikgPT0gKHt9IHwganNvbilcclxuICAgICAgICAgID8gJ3BsYWNlaG9sZGVyJ1xyXG4gICAgICAgICAgOiAnc2VsZWN0ZWQnXHJcbiAgICAgIF1cIlxyXG4gICAgICA+e3tcclxuICAgICAgICBsYWJlbC5sZW5ndGggPiAwICYmIChzZWxlY3RlZEl0ZW0gfCBqc29uKSA9PSAoe30gfCBqc29uKVxyXG4gICAgICAgICAgPyBsYWJlbFxyXG4gICAgICAgICAgOiBzZWxlY3RlZEl0ZW0udGl0bGVcclxuICAgICAgfX08L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIm5vLWRhdGFcIlxyXG4gICAgKm5nSWY9XCJuZXdJdGVtcy5sZW5ndGggPT09IDBcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnbWVudS1vcGVuLW5vLWRhdGEnOiBpc09wZW5NZW51IH1cIlxyXG4gID5cclxuICAgIDx3YXJuaW5nLWljb24gY2xhc3M9XCJpY29uLWNvbG9yIGlubGluZS1ibG9jayB3LTZcIj48L3dhcm5pbmctaWNvbj5cclxuICAgIDxiIGNsYXNzPVwiY29udGVudCBibG9ja1wiPtmF2YjYsdiv24wg24zYp9mB2Kog2YbYtNivPC9iPlxyXG4gIDwvZGl2PlxyXG4gIDx1bFxyXG4gICAgY2xhc3M9XCJtZW51IGRyb3Bkb3duXCJcclxuICAgIChrZXlkb3duKT1cImhhbmRsZUtleSgkZXZlbnQpXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ21lbnUtb3Blbic6IGlzT3Blbk1lbnUgfVwiXHJcbiAgPlxyXG4gICAgPGxpXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5ld0l0ZW1zXCJcclxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCJcclxuICAgICAgI2ZvY3VzYWJsZVxyXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXRlbSA9PSBzZWxlY3RlZEl0ZW0gfVwiXHJcbiAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaXRlbSwgdHJ1ZSlcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwiZHJvcGRvd25JdGVtS2V5cHJlc3MoJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGl0ZW0udGl0bGUgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuICA8ZGl2IGNsYXNzPVwibGFiZWwtZXJyb3Igb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgaW5wdXRGb3JtQ29udHJvbC50b3VjaGVkICAmJlxyXG4gICAgICBpbnB1dEZvcm1Db250cm9sLmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgPtin24zZhiDZgduM2YTYryDYrtin2YTbjCDYp9iz2Ko8L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtc2VsZWN0L2NvcmUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXNlbGVjdC9jb3JlLXNlbGVjdC1mYWxjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFVN0QsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QixJQUFhLEtBQUssQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFhLFlBQVksQ0FBQyxJQUFPO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFRRCxZQUFvQixHQUFzQixFQUFVLEtBQWlCO1FBQWpELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQTNCckUsaUJBQVksR0FBZ0IsRUFBaUIsQ0FBQztRQUM5QyxjQUFTLEdBQTRCLFNBQVMsQ0FBQztRQUcvQyxhQUFRLEdBQWtCLEVBQUUsQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFJUixTQUFJLEdBQVcs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QUN0RDtZQUNBLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN2QztJQUNILENBQUM7K0dBakhVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHViQ3JCaEMsK3RFQXdFQTs7NEZEbkRhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO2lJQWFkLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDcUIsaUJBQWlCO3NCQUEzQyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxudHlwZSBNZW51SXRlbTxUPiA9IHtcclxuICB0aXRsZTogVDtcclxuICB2YWx1ZTogVDtcclxufTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtc2VsZWN0JyArIGVudmlyb25tZW50LnRlbXBOYW1lLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtc2VsZWN0JyArIGVudmlyb25tZW50LnN0eWxlTmFtZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlU2VsZWN0Q29tcG9uZW50PFQ+IHtcclxuICBzZWxlY3RlZEl0ZW06IE1lbnVJdGVtPFQ+ID0ge30gYXMgTWVudUl0ZW08VD47XHJcbiAgZm9jdXNJdGVtOiBNZW51SXRlbTxUPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICB0aXRsZUtleU9iamVjdCE6IGtleW9mIHN0cmluZyB8IG51bWJlcjtcclxuICB2YWx1ZUtleU9iamVjdCE6IGtleW9mIHN0cmluZyB8IG51bWJlcjtcclxuICBuZXdJdGVtczogTWVudUl0ZW08VD5bXSA9IFtdO1xyXG4gIGlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICBfaXRlbXM6IGFueSA9IFtdO1xyXG4gIF9kZWZhdWx0VmFsdWUhOiBUO1xyXG4gIEBJbnB1dCgpIHRpdGxlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZyA9ICdzbWFsbCc7XHJcbiAgQElucHV0KCkgY2FuSGlnaGxpZ2h0QmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuX2l0ZW1zID0gZGF0YTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgZGVmYXVsdFZhbHVlKGRhdGE6IFQpIHtcclxuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IGRhdGE7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgaW5wdXRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtdKTtcclxuICBAVmlld0NoaWxkcmVuKCdmb2N1c2FibGUnKSBmb2N1c2FibGVFbGVtZW50cyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcclxuICBjdXJyZW50SW5kZXggPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XHJcbiAgaW5pdCgpIHtcclxuICAgIHR5cGUgT2JqZWN0S2V5ID0gKHR5cGVvZiB0aGlzLl9pdGVtcylbMF07XHJcbiAgICB0aGlzLnRpdGxlS2V5T2JqZWN0ID0gdGhpcy50aXRsZUtleSBhcyBPYmplY3RLZXk7XHJcbiAgICB0aGlzLnZhbHVlS2V5T2JqZWN0ID0gdGhpcy52YWx1ZUtleSBhcyBPYmplY3RLZXk7XHJcbiAgICB0aGlzLm5ld0l0ZW1zID0gdGhpcy5jaGFuZ2VJdGVtc1R5cGUodGhpcy5faXRlbXMpO1xyXG4gICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuX2RlZmF1bHRWYWx1ZSk7XHJcbiAgICB0aGlzLm9uSXRlbVNlbGVjdChcclxuICAgICAgdGhpcy5uZXdJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09IHRoaXMuX2RlZmF1bHRWYWx1ZSksXHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlSXRlbXNUeXBlKGl0ZW1zOiBhbnlbXSk6IE1lbnVJdGVtPFQ+W10ge1xyXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHRpdGxlOiBpdGVtW3RoaXMudGl0bGVLZXlPYmplY3RdLFxyXG4gICAgICAgIHZhbHVlOiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuTWVudUNsaWNrKGNhbkZvY3VzOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5pc09wZW5NZW51ID0gIXRoaXMuaXNPcGVuTWVudTtcclxuICB9XHJcbiAgaGFuZGxlS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBjdXJyZW50SXRlbUluZGV4ID0gdGhpcy5faXRlbXMuZmluZEluZGV4KFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMudmFsdWVLZXlPYmplY3RdID09PSB0aGlzLmZvY3VzSXRlbT8udmFsdWVcclxuICAgICk7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgdGhpcy5pc09wZW5NZW51ID0gIXRoaXMuaXNPcGVuTWVudTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c0l0ZW0pIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5mb2N1c0l0ZW07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJyAnOlxyXG4gICAgICAgIHRoaXMuaXNPcGVuTWVudSA9ICF0aGlzLmlzT3Blbk1lbnU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICBpZiAodGhpcy5pc09wZW5NZW51ICYmIHRoaXMuX2l0ZW1zLmxlbmd0aCAtIDEgPiBjdXJyZW50SXRlbUluZGV4KVxyXG4gICAgICAgICAgdGhpcy5mb2N1c0l0ZW0gPSB0aGlzLl9pdGVtc1tjdXJyZW50SXRlbUluZGV4ICsgMV07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbk1lbnUgJiYgY3VycmVudEl0ZW1JbmRleCA+IDApXHJcbiAgICAgICAgICB0aGlzLmZvY3VzSXRlbSA9IHRoaXMuX2l0ZW1zW2N1cnJlbnRJdGVtSW5kZXggLSAxXTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnVGFiJzpcclxuICAgICAgICB0aGlzLmlzT3Blbk1lbnUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbVNlbGVjdChzZWxlY3RlZEl0ZW06IE1lbnVJdGVtPFQ+IHwgdW5kZWZpbmVkLCBpc0Zyb21VaTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGlzRnJvbVVpKSB0aGlzLmlucHV0Rm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICBpZiAoIXNlbGVjdGVkSXRlbSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHt9IGFzIE1lbnVJdGVtPFQ+O1xyXG4gICAgICB0aGlzLmZvY3VzSXRlbSA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5pbnB1dEZvcm1Db250cm9sLnJlc2V0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gc2VsZWN0ZWRJdGVtO1xyXG4gICAgdGhpcy5mb2N1c0l0ZW0gPSBzZWxlY3RlZEl0ZW07XHJcbiAgICBjb25zdCBtYWluSXRlbSA9IHRoaXMuX2l0ZW1zLmZpbmQoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy52YWx1ZUtleU9iamVjdF0gPT09IHNlbGVjdGVkSXRlbS52YWx1ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3RlZEl0ZW0udmFsdWUpO1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3RlZC5lbWl0KG1haW5JdGVtKTtcclxuICB9XHJcbiAgZm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IG5leHRGb2N1c2VkRWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoXHJcbiAgICAgICFuZXh0Rm9jdXNlZEVsZW1lbnQgfHxcclxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhuZXh0Rm9jdXNlZEVsZW1lbnQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc09wZW5NZW51ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaW5wdXRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkcm9wZG93blwiIChmb2N1c291dCk9XCJmb2N1c091dCgkZXZlbnQpXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnc2VsZWN0LWNsaWNrZWQnOiBpc09wZW5NZW51LFxyXG4gICAgICAnaGlnaGxpZ2h0LWJhY2tncm91bmQnOlxyXG4gICAgICAgIGNhbkhpZ2hsaWdodEJhY2tncm91bmQgJiZcclxuICAgICAgICAoc2VsZWN0ZWRJdGVtIHwganNvbikgPT09ICh7fSB8IGpzb24pICYmXHJcbiAgICAgICAgIShpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgJiYgaW5wdXRGb3JtQ29udHJvbC5lcnJvcnMpLFxyXG4gICAgICBzZWxlY3RFcnJvcjogaW5wdXRGb3JtQ29udHJvbC50b3VjaGVkICYmIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzICxcclxuICAgICAgJ2Rpc2FibGUtc2VsZWN0b3InOiBkaXNhYmxlZCxcclxuXHJcbiAgICB9XCJcclxuICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXkoJGV2ZW50KVwiXHJcbiAgICAoY2xpY2spPVwib3Blbk1lbnVDbGljayhmYWxzZSlcIlxyXG4gID5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwicGxhY2Vob2xkZXItdG9wXCJcclxuICAgICAgKm5nSWY9XCIoc2VsZWN0ZWRJdGVtIHwganNvbikgIT0gKHt9IHwganNvbilcIlxyXG4gICAgICA+e3sgbGFiZWwgfX08L3NwYW5cclxuICAgID5cclxuICAgIDxhcnJvdy1kb3duLWljb25cclxuICAgICAgY2xhc3M9XCJjYXJldCBmaWxsLXNlY29uZGFyeS10ZXh0LWNvbG9yIGgtNlwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2NhcmV0LXJvdGF0ZSc6IGlzT3Blbk1lbnUgfVwiXHJcbiAgICA+PC9hcnJvdy1kb3duLWljb24+XHJcblxyXG4gICAgPHNwYW5cclxuICAgICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICAgIGxhYmVsLmxlbmd0aCA+IDAgJiYgKHNlbGVjdGVkSXRlbSB8IGpzb24pID09ICh7fSB8IGpzb24pXHJcbiAgICAgICAgICA/ICdwbGFjZWhvbGRlcidcclxuICAgICAgICAgIDogJ3NlbGVjdGVkJ1xyXG4gICAgICBdXCJcclxuICAgICAgPnt7XHJcbiAgICAgICAgbGFiZWwubGVuZ3RoID4gMCAmJiAoc2VsZWN0ZWRJdGVtIHwganNvbikgPT0gKHt9IHwganNvbilcclxuICAgICAgICAgID8gbGFiZWxcclxuICAgICAgICAgIDogc2VsZWN0ZWRJdGVtLnRpdGxlXHJcbiAgICAgIH19PC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJuby1kYXRhXCJcclxuICAgICpuZ0lmPVwibmV3SXRlbXMubGVuZ3RoID09PSAwXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ21lbnUtb3Blbi1uby1kYXRhJzogaXNPcGVuTWVudSB9XCJcclxuICA+XHJcbiAgICA8d2FybmluZy1pY29uIGNsYXNzPVwiaWNvbi1jb2xvciBpbmxpbmUtYmxvY2sgdy02XCI+PC93YXJuaW5nLWljb24+XHJcbiAgICA8YiBjbGFzcz1cImNvbnRlbnQgYmxvY2tcIj7ZhdmI2LHYr9uMINuM2KfZgdiqINmG2LTYrzwvYj5cclxuICA8L2Rpdj5cclxuICA8dWxcclxuICAgIGNsYXNzPVwibWVudSBkcm9wZG93blwiXHJcbiAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnbWVudS1vcGVuJzogaXNPcGVuTWVudSB9XCJcclxuICA+XHJcbiAgICA8bGlcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbmV3SXRlbXNcIlxyXG4gICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIlxyXG4gICAgICAjZm9jdXNhYmxlXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSBmb2N1c0l0ZW0/LnZhbHVlIH1cIlxyXG4gICAgICAoY2xpY2spPVwib25JdGVtU2VsZWN0KGl0ZW0sIHRydWUpXCJcclxuICAgID5cclxuICAgICAge3sgaXRlbS50aXRsZSB9fVxyXG4gICAgPC9saT5cclxuICA8L3VsPlxyXG4gIDxkaXYgY2xhc3M9XCJsYWJlbC1lcnJvciBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgIDxzcGFuXHJcbiAgICAgICpuZ0lmPVwiXHJcbiAgICAgICBpbnB1dEZvcm1Db250cm9sLnRvdWNoZWQgICYmXHJcbiAgICAgIGlucHV0Rm9ybUNvbnRyb2wuZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIlxyXG4gICAgICA+2KfbjNmGINmB24zZhNivINiu2KfZhNuMINin2LPYqjwvc3BhblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19