ng-ipa-library 1.4.2 → 1.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/ipa-form/datepicker/datepicker.component.mjs +15 -7
- package/esm2020/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs +7 -3
- package/esm2020/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.mjs +7 -3
- package/esm2020/lib/ipa-form/dropdown-input/dropdown-input.component.mjs +1 -2
- package/esm2020/lib/ipa-form/file-upload/file-upload.component.mjs +2 -2
- package/esm2020/lib/ipa-form/ipa-form.service.mjs +34 -6
- package/fesm2015/ng-ipa-library.mjs +59 -16
- package/fesm2015/ng-ipa-library.mjs.map +1 -1
- package/fesm2020/ng-ipa-library.mjs +58 -16
- package/fesm2020/ng-ipa-library.mjs.map +1 -1
- package/lib/ipa-form/datepicker/datepicker.component.d.ts +9 -6
- package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +1 -0
- package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +1 -0
- package/lib/ipa-form/ipa-form.service.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { Component, Input, Self, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, Input, Self, ViewChild, } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { IPAFormService } from '../ipa-form.service';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "../ipa-form.service";
|
|
5
6
|
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
6
7
|
import * as i3 from "@angular/forms";
|
|
7
8
|
import * as i4 from "@angular/common";
|
|
8
9
|
export class DatepickerComponent {
|
|
9
|
-
constructor(ipaFormService, calendar, controlDir, config) {
|
|
10
|
+
constructor(ipaFormService, calendar, controlDir, config, cd) {
|
|
10
11
|
this.ipaFormService = ipaFormService;
|
|
11
12
|
this.calendar = calendar;
|
|
12
13
|
this.controlDir = controlDir;
|
|
14
|
+
this.cd = cd;
|
|
13
15
|
this.label = 'datepicker';
|
|
14
16
|
this.patternErrorMsg = 'invalid pattern';
|
|
15
17
|
this.required = false;
|
|
@@ -18,10 +20,16 @@ export class DatepickerComponent {
|
|
|
18
20
|
this.formControl = new FormControl('');
|
|
19
21
|
this.controlDir.valueAccessor = this;
|
|
20
22
|
config.container = null;
|
|
23
|
+
config.placement = 'bottom-center';
|
|
24
|
+
}
|
|
25
|
+
ngAfterContentChecked() {
|
|
26
|
+
this.cd.detectChanges();
|
|
21
27
|
}
|
|
22
28
|
ngOnInit() {
|
|
23
29
|
const control = this.controlDir.control;
|
|
24
30
|
const validators = control?.validator ? [control.validator] : [];
|
|
31
|
+
if (this.isHijriDatepicker)
|
|
32
|
+
validators.push(IPAFormService.validHijriDate);
|
|
25
33
|
control?.setValidators(validators);
|
|
26
34
|
control?.updateValueAndValidity();
|
|
27
35
|
this.formControl = control;
|
|
@@ -48,14 +56,14 @@ export class DatepickerComponent {
|
|
|
48
56
|
return this.errorMsg;
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
|
-
DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DatepickerComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgbCalendar }, { token: i3.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: DatepickerComponent, selector: "ipa-datepicker", inputs: { id: "id", label: "label", patternErrorMsg: "patternErrorMsg", required: "required", maxDate: "maxDate", minDate: "minDate", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n
|
|
59
|
+
DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DatepickerComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgbCalendar }, { token: i3.NgControl, self: true }, { token: i2.NgbInputDatepickerConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: DatepickerComponent, selector: "ipa-datepicker", inputs: { id: "id", label: "label", patternErrorMsg: "patternErrorMsg", required: "required", maxDate: "maxDate", minDate: "minDate", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
53
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
54
62
|
type: Component,
|
|
55
|
-
args: [{ selector: 'ipa-datepicker', template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n
|
|
63
|
+
args: [{ selector: 'ipa-datepicker', template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
|
|
56
64
|
}], ctorParameters: function () { return [{ type: i1.IPAFormService }, { type: i2.NgbCalendar }, { type: i3.NgControl, decorators: [{
|
|
57
65
|
type: Self
|
|
58
|
-
}] }, { type: i2.NgbInputDatepickerConfig }]; }, propDecorators: { datepicker: [{
|
|
66
|
+
}] }, { type: i2.NgbInputDatepickerConfig }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { datepicker: [{
|
|
59
67
|
type: ViewChild,
|
|
60
68
|
args: ['d']
|
|
61
69
|
}], id: [{
|
|
@@ -77,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
77
85
|
}], isArabicForm: [{
|
|
78
86
|
type: Input
|
|
79
87
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQVF4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQU9yRCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixZQUNVLGNBQThCLEVBQzlCLFFBQXFCLEVBQ2QsVUFBcUIsRUFDcEMsTUFBZ0MsRUFDeEIsRUFBcUI7UUFKckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBRTVCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBbEJ0QixVQUFLLEdBQUcsWUFBWSxDQUFDO1FBQ3JCLG9CQUFlLEdBQUcsaUJBQWlCLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUtqQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUU3QixVQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQVU3QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDckMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7SUFDckMsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRSxPQUFPLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBc0IsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVUsSUFBUyxDQUFDO0lBRTdCLFNBQVMsS0FBVSxDQUFDO0lBQ3BCLFVBQVUsQ0FBQyxHQUFRLElBQVMsQ0FBQztJQUU3QixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUNqRCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O2dIQXRFVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix1WEN4QmhDLCtuREFxQk07MkZER08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs7MEJBdUJ2QixJQUFJO21IQWxCUyxVQUFVO3NCQUF6QixTQUFTO3VCQUFDLEdBQUc7Z0JBQ0wsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBOZ2JDYWxlbmRhcixcclxuICBOZ2JEYXRlLFxyXG4gIE5nYkRhdGVTdHJ1Y3QsXHJcbiAgTmdiSW5wdXREYXRlcGlja2VyLFxyXG4gIE5nYklucHV0RGF0ZXBpY2tlckNvbmZpZyxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IElQQUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vaXBhLWZvcm0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZCgnZCcpIGRhdGVwaWNrZXIhOiBOZ2JJbnB1dERhdGVwaWNrZXI7XHJcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnZGF0ZXBpY2tlcic7XHJcbiAgQElucHV0KCkgcGF0dGVybkVycm9yTXNnID0gJ2ludmFsaWQgcGF0dGVybic7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXhEYXRlITogTmdiRGF0ZVN0cnVjdDtcclxuICBASW5wdXQoKSBtaW5EYXRlITogTmdiRGF0ZVN0cnVjdDtcclxuICBASW5wdXQoKSBjbGFzc2VzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBpc0hpanJpRGF0ZXBpY2tlciE6IGJvb2xlYW47XHJcbiAgdG9kYXkgPSB0aGlzLmNhbGVuZGFyLmdldFRvZGF5KCk7XHJcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpcGFGb3JtU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhbGVuZGFyOiBOZ2JDYWxlbmRhcixcclxuICAgIEBTZWxmKCkgcHVibGljIGNvbnRyb2xEaXI6IE5nQ29udHJvbCxcclxuICAgIGNvbmZpZzogTmdiSW5wdXREYXRlcGlja2VyQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIGNvbmZpZy5jb250YWluZXIgPSBudWxsO1xyXG4gICAgY29uZmlnLnBsYWNlbWVudCA9ICdib3R0b20tY2VudGVyJztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sRGlyLmNvbnRyb2w7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gY29udHJvbD8udmFsaWRhdG9yID8gW2NvbnRyb2wudmFsaWRhdG9yXSA6IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNIaWpyaURhdGVwaWNrZXIpIHZhbGlkYXRvcnMucHVzaChJUEFGb3JtU2VydmljZS52YWxpZEhpanJpRGF0ZSk7XHJcbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7fVxyXG5cclxuICBvblRvdWNoZWQoKTogdm9pZCB7fVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIG9wZW5EYXRlcGlja2VyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5kYXRlcGlja2VyLmlzT3BlbigpKSB7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci50b2dnbGUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JNZXNzYWdlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgdGhpcy5lcnJvck1zZyA9IHRoaXMuaXBhRm9ybVNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKFxyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLFxyXG4gICAgICB0aGlzLnBhdHRlcm5FcnJvck1zZyxcclxuICAgICAgdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvck1zZztcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZmxvYXRpbmcgaW5wdXQtZ3JvdXAge3tjb250YWluZXJDbGFzc2VzfX1cIj5cclxuICAgIDxpbnB1dCBpZD1cInt7aWR9fVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkIGlzLWludmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkpICYmIGVycm9yTXNnLCdpcy12YWxpZCBpcy12YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkgICYmIChlcnJvck1zZyB8fCBjb250cm9sRGlyLnZhbHVlKSl9XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCB7e2NsYXNzZXN9fVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtmaXJzdERheU9mV2Vla109XCI3XCIgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICNkPVwibmdiRGF0ZXBpY2tlclwiIFttYXhEYXRlXT1cIm1heERhdGVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCJcclxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBzdHlsZT1cIm91dGxpbmU6IHVuc2V0OyB6LWluZGV4OiB1bnNldCAhaW1wb3J0YW50O1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7bGFiZWx9fVwiPlxyXG4gICAgPGxhYmVsIGZvcj1cInt7aWR9fVwiPnt7bGFiZWx9fTwvbGFiZWw+XHJcbiAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgY2FsZW5kZXJCdG5cIiAoY2xpY2spPVwib3BlbkRhdGVwaWNrZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNhbGVuZGFyLWFsdCBmYS1sZ1wiPjwvaT5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2UgIT09IG51bGxcIj5cclxuICAgICAgICB7e2Vycm9yTXNnfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZSBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgICAgICA8aHI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG0tMiBcIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBmbG9hdDogcmlnaHQ7XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnBhdGNoVmFsdWUodG9kYXkpO2QubmF2aWdhdGVUbyh0b2RheSk7XCI+2KfZhNmK2YjZhTwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIG0tMlwiIHN0eWxlPVwid2lkdGg6IGF1dG87IGZsb2F0OiBsZWZ0O1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5wYXRjaFZhbHVlKG51bGwpO2QuY2xvc2UoKVwiPtmF2LPYrTwvYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19
|
package/esm2020/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs
CHANGED
|
@@ -7,17 +7,21 @@ import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
|
7
7
|
import * as i2 from "@angular/forms";
|
|
8
8
|
import * as i3 from "@angular/common";
|
|
9
9
|
export class GregorianDatepickerComponent extends DatepickerComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.isHijriDatepicker = false;
|
|
13
|
+
}
|
|
10
14
|
}
|
|
11
15
|
GregorianDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
12
16
|
GregorianDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: GregorianDatepickerComponent, selector: "ipa-gregorian-datepicker", providers: [
|
|
13
17
|
{ provide: NgbCalendar, useClass: NgbCalendarGregorian },
|
|
14
18
|
{ provide: NgbDatepickerI18n, useClass: Gregorian18n },
|
|
15
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n
|
|
19
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], directives: [{ type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
16
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
|
|
17
21
|
type: Component,
|
|
18
22
|
args: [{ selector: 'ipa-gregorian-datepicker', providers: [
|
|
19
23
|
{ provide: NgbCalendar, useClass: NgbCalendarGregorian },
|
|
20
24
|
{ provide: NgbDatepickerI18n, useClass: Gregorian18n },
|
|
21
|
-
], template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n
|
|
25
|
+
], template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
|
|
22
26
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFXOUMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLG1CQUFtQjtJQVRyRTs7UUFVRSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7S0FDM0I7O3lIQUZZLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLG1EQUw1QjtRQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUM7UUFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtLQUN2RCxpRENaSCwrbkRBcUJNOzJGRFBPLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDRSwwQkFBMEIsYUFHekI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBQzt3QkFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtxQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkNhbGVuZGFyR3JlZ29yaWFuLCBOZ2JEYXRlcGlja2VySTE4biB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JlZ29yaWFuMThuIH0gZnJvbSAnLi9ncmVnb3JpYW4xOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZ3JlZ29yaWFuLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhckdyZWdvcmlhbn0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogR3JlZ29yaWFuMThuIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyZWdvcmlhbkRhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRlcGlja2VyQ29tcG9uZW50IHtcclxuICBpc0hpanJpRGF0ZXBpY2tlciA9IGZhbHNlO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIGlucHV0LWdyb3VwIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgICA8aW5wdXQgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZywnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpICAmJiAoZXJyb3JNc2cgfHwgY29udHJvbERpci52YWx1ZSkpfVwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbZmlyc3REYXlPZldlZWtdPVwiN1wiIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAjZD1cIm5nYkRhdGVwaWNrZXJcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgc3R5bGU9XCJvdXRsaW5lOiB1bnNldDsgei1pbmRleDogdW5zZXQgIWltcG9ydGFudDtcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoYmx1cik9XCJvblRvdWNoZWQoKVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e2xhYmVsfX1cIj5cclxuICAgIDxsYWJlbCBmb3I9XCJ7e2lkfX1cIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0IGNhbGVuZGVyQnRuXCIgKGNsaWNrKT1cIm9wZW5EYXRlcGlja2VyKCRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jYWxlbmRhci1hbHQgZmEtbGdcIj48L2k+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlICE9PSBudWxsXCI+XHJcbiAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGhyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtLTIgXCIgc3R5bGU9XCJ3aWR0aDogYXV0bzsgZmxvYXQ6IHJpZ2h0O1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRvZGF5KTtkLm5hdmlnYXRlVG8odG9kYXkpO1wiPtin2YTZitmI2YU8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBtLTJcIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBmbG9hdDogbGVmdDtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtkLmNsb3NlKClcIj7Zhdiz2K08L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -7,17 +7,21 @@ import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
|
7
7
|
import * as i2 from "@angular/forms";
|
|
8
8
|
import * as i3 from "@angular/common";
|
|
9
9
|
export class HijriDatepickerComponent extends DatepickerComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.isHijriDatepicker = true;
|
|
13
|
+
}
|
|
10
14
|
}
|
|
11
15
|
HijriDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: HijriDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
12
16
|
HijriDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: HijriDatepickerComponent, selector: "ipa-hijri-datepicker", providers: [
|
|
13
17
|
{ provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
|
|
14
18
|
{ provide: NgbDatepickerI18n, useClass: IslamicI18n },
|
|
15
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n
|
|
19
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"], directives: [{ type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
16
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: HijriDatepickerComponent, decorators: [{
|
|
17
21
|
type: Component,
|
|
18
22
|
args: [{ selector: 'ipa-hijri-datepicker', providers: [
|
|
19
23
|
{ provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
|
|
20
24
|
{ provide: NgbDatepickerI18n, useClass: IslamicI18n },
|
|
21
|
-
], template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n
|
|
25
|
+
], template: "<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker\r\n #d=\"ngbDatepicker\" [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\"\r\n [required]=\"required\" style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\"\r\n placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);\">\u0627\u0644\u064A\u0648\u0645</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">\u0645\u0633\u062D</button>\r\n </ng-template>\r\n</div>", styles: [".calenderBtn{cursor:pointer;background-color:transparent;color:#6c757d;border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.calenderBtn:hover{color:#fff;background-color:#6c757d;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}\n"] }]
|
|
22
26
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVTVDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBbUI7SUFUakU7O1FBVUUsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO0tBQzFCOztxSEFGWSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwrQ0FMeEI7UUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFO1FBQzlELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7S0FDdEQsaURDWEgsK25EQXFCTTsyRkRSTyx3QkFBd0I7a0JBVHBDLFNBQVM7K0JBQ0Usc0JBQXNCLGFBR3JCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUU7d0JBQzlELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7cUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkNhbGVuZGFyLCBOZ2JDYWxlbmRhcklzbGFtaWNVbWFscXVyYSwgTmdiRGF0ZXBpY2tlckkxOG4gfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElzbGFtaWNJMThuIH0gZnJvbSAnLi9Jc2xhbWljSTE4bic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWhpanJpLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhcklzbGFtaWNVbWFscXVyYSB9LFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlcGlja2VySTE4biwgdXNlQ2xhc3M6IElzbGFtaWNJMThuIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpanJpRGF0ZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIERhdGVwaWNrZXJDb21wb25lbnQge1xyXG4gIGlzSGlqcmlEYXRlcGlja2VyID0gdHJ1ZTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1mbG9hdGluZyBpbnB1dC1ncm91cCB7e2NvbnRhaW5lckNsYXNzZXN9fVwiPlxyXG4gICAgPGlucHV0IGlkPVwie3tpZH19XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQgaXMtaW52YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSkgJiYgZXJyb3JNc2csJ2lzLXZhbGlkIGlzLXZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8udmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSAgJiYgKGVycm9yTXNnIHx8IGNvbnRyb2xEaXIudmFsdWUpKX1cIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7Y2xhc3Nlc319XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cIjdcIiBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgI2Q9XCJuZ2JEYXRlcGlja2VyXCIgW21heERhdGVdPVwibWF4RGF0ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIHN0eWxlPVwib3V0bGluZTogdW5zZXQ7IHotaW5kZXg6IHVuc2V0ICFpbXBvcnRhbnQ7XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3tsYWJlbH19XCI+XHJcbiAgICA8bGFiZWwgZm9yPVwie3tpZH19XCI+e3tsYWJlbH19PC9sYWJlbD5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dCBjYWxlbmRlckJ0blwiIChjbGljayk9XCJvcGVuRGF0ZXBpY2tlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY2FsZW5kYXItYWx0IGZhLWxnXCI+PC9pPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImVycm9yTWVzc2FnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgIHt7ZXJyb3JNc2d9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgICAgIDxocj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbS0yIFwiIHN0eWxlPVwid2lkdGg6IGF1dG87IGZsb2F0OiByaWdodDtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0b2RheSk7ZC5uYXZpZ2F0ZVRvKHRvZGF5KTtcIj7Yp9mE2YrZiNmFPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gbS0yXCIgc3R5bGU9XCJ3aWR0aDogYXV0bzsgZmxvYXQ6IGxlZnQ7XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnBhdGNoVmFsdWUobnVsbCk7ZC5jbG9zZSgpXCI+2YXYs9itPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
|
|
@@ -26,7 +26,6 @@ export class DropdownInputComponent {
|
|
|
26
26
|
control?.setValidators(validators);
|
|
27
27
|
control?.updateValueAndValidity();
|
|
28
28
|
this.formControl = control;
|
|
29
|
-
this.formControl.patchValue('');
|
|
30
29
|
}
|
|
31
30
|
onChange(event) { }
|
|
32
31
|
onTouched() { }
|
|
@@ -82,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
82
81
|
}], fromGenerateForm: [{
|
|
83
82
|
type: Input
|
|
84
83
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kcm9wZG93bi1pbnB1dC9kcm9wZG93bi1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2Ryb3Bkb3duLWlucHV0L2Ryb3Bkb3duLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUVMLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUXhELE1BQU0sT0FBTyxzQkFBc0I7SUFrQmpDLFlBQ1UsaUJBQWlDLEVBQzFCLFVBQXFCO1FBRDVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQWpCN0IsVUFBSyxHQUFXLFlBQVksQ0FBQztRQUM3QixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBR2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixpQkFBWSxHQUFHLGdCQUFnQixDQUFDO1FBR2hDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNsQyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQU83QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRWpFLE9BQU8sRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFzQixDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxJQUFTLENBQUM7SUFFN0IsU0FBUyxLQUFVLENBQUM7SUFDcEIsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDcEQsSUFBSSxDQUFDLFdBQVcsRUFDaEIsRUFBRSxFQUNGLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7bUhBeERVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLCtmQ2hCbkMsdXlEQXlCTTsyRkRUTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkF3QjNCLElBQUk7NENBbkJnQyxLQUFLO3NCQUEzQyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzVCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWRyb3Bkb3duLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bklucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdzZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dCE6IEhUTUxTZWxlY3RFbGVtZW50O1xyXG4gIEBJbnB1dCgpIGlkITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAndGV4dCBpbnB1dCc7XHJcbiAgQElucHV0KCkgaXRlbXM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgdGV4dEZpZWxkITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaXJzdEl0ZW1MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBzZWFyY2hhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbm90Rm91bmRUZXh0ID0gJ9mE2Kcg2YrZiNis2K8g2KjZitin2YbYp9iqJztcclxuICBASW5wdXQoKSBjbGFzc2VzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBASW5wdXQoKSBmcm9tR2VuZXJhdGVGb3JtID0gZmFsc2U7XHJcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xyXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGNvbnRyb2w/LnZhbGlkYXRvciA/IFtjb250cm9sLnZhbGlkYXRvcl0gOiBbXTtcclxuXHJcbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7fVxyXG5cclxuICBvblRvdWNoZWQoKTogdm9pZCB7fVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlucHV0KSB0aGlzLmlucHV0LnZhbHVlID0gb2JqIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHRoaXMuZXJyb3JNc2cgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZShcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbCxcclxuICAgICAgJycsXHJcbiAgICAgIHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNc2c7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgPCEtLSBzZWFyY2hhYmxlIGlzIGZhbHNlIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VhcmNoYWJsZVwiPlxyXG4gICAgPHNlbGVjdCAjc2VsZWN0IGlkPVwie3tpZH19XCIgY2xhc3M9XCJmb3JtLXNlbGVjdCB7e2NsYXNzZXN9fVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZywnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250cm9sRGlyLmNvbnRyb2w/LnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkgICYmIChlcnJvck1zZyB8fCBjb250cm9sRGlyLnZhbHVlKSl9XCI+XHJcbiAgICAgIDxvcHRpb24gKm5nSWY9XCJmaXJzdEl0ZW1MYWJlbFwiIHZhbHVlPVwiXCI+e3tmaXJzdEl0ZW1MYWJlbH19PC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUZpZWxkID8gZnJvbUdlbmVyYXRlRm9ybSA/IGl0ZW1bdGV4dEZpZWxkXSA6IGl0ZW1bdmFsdWVGaWVsZF0gOiBpdGVtXCI+XHJcbiAgICAgICAge3t0ZXh0RmllbGQgPyBpdGVtW3RleHRGaWVsZF0gOiBpdGVtfX1cclxuICAgICAgPC9vcHRpb24+XHJcbiAgICA8L3NlbGVjdD5cclxuICAgIDxsYWJlbCBmb3I9XCJ7e2lkfX1cIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8IS0tIHNlYXJjaGFibGUgaXMgdHJ1ZSAtLT5cclxuICA8bmctc2VsZWN0ICpuZ0lmPVwic2VhcmNoYWJsZVwiICNzZWxlY3QgZGlyPVwicnRsXCIgY2xhc3M9XCJ7e2NsYXNzZXN9fVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtpdGVtc109XCJpdGVtc1wiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwibGFiZWxcIiBbbm90Rm91bmRUZXh0XT1cIm5vdEZvdW5kVGV4dFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICBbYmluZFZhbHVlXT1cImZyb21HZW5lcmF0ZUZvcm0/IHRleHRGaWVsZCA6IHZhbHVlRmllbGRcIiBbYmluZExhYmVsXT1cInRleHRGaWVsZFwiXHJcbiAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQgaXMtaW52YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSkgJiYgZXJyb3JNc2csJ2lzLXZhbGlkIGlzLXZhbGlkOmZvY3VzJzogXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRyb2xEaXIuY29udHJvbD8udmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSAgJiYgKGVycm9yTXNnIHx8IGNvbnRyb2xEaXIudmFsdWUpKX1cIj5cclxuICA8L25nLXNlbGVjdD5cclxuICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlICE9PSBudWxsXCI+XHJcbiAgICB7e2Vycm9yTXNnfX1cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -27,7 +27,7 @@ export class FileUploadComponent {
|
|
|
27
27
|
this.currentFiles = [];
|
|
28
28
|
}
|
|
29
29
|
ngOnInit() {
|
|
30
|
-
this.label = this.isArabicForm ? 'رفع ' : 'Upload ' + this.label;
|
|
30
|
+
this.label = (this.isArabicForm ? 'رفع ' : 'Upload ') + this.label;
|
|
31
31
|
this.config = {
|
|
32
32
|
url: this.apiUrl,
|
|
33
33
|
method: this.method,
|
|
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
134
134
|
}], fileDeleted: [{
|
|
135
135
|
type: Output
|
|
136
136
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFPOUIsTUFBTSxPQUFPLG1CQUFtQjtJQXNCOUI7SUFDRSxvQ0FBb0M7SUFDNUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFyQjdCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkUsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxRQUFRLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFdB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QXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7XHJcbiAgRHJvcHpvbmVDb25maWdJbnRlcmZhY2UsXHJcbiAgRHJvcHpvbmVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnbmd4LWRyb3B6b25lLXdyYXBwZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHJvcHpvbmVEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3B6b25lRGlyITogRHJvcHpvbmVEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWNjZXB0ZWRGaWxlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gMTsgLy8gc2V0IG1heEZpbGVzIChOT1QgdXBsb2FkTXVsdGlwbGUpaW4gdGhlIGNvbmZpZyBvYmplY3QsXHJcbiAgQElucHV0KCkgbWF4RmlsZVNpemUgPSAyO1xyXG4gIEBJbnB1dCgpIG1ldGhvZCA9ICdQT1NUJztcclxuICBASW5wdXQoKSBhdXRvVXBsb2FkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYXBpVXJsID0gJ2FwaVVybCc7XHJcbiAgQElucHV0KCkgYXV0aG9yaXphdGlvbiE6IHN0cmluZztcclxuICBAT3V0cHV0KCkgc3VjY2Vzc1VwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkcmFnRW50ZXIgPSBmYWxzZTtcclxuICBlcnJvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29uZmlnITogRHJvcHpvbmVDb25maWdJbnRlcmZhY2U7XHJcbiAgZmlsZXNBZGRlZDogRmlsZVtdID0gW107XHJcbiAgY3VycmVudEZpbGVzOiBGaWxlW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhYmVsID0gdGhpcy5pc0FyYWJpY0Zvcm0gPyAn2LHZgdi5ICcgOiAnVXBsb2FkICcgKyB0aGlzLmxhYmVsO1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIHVybDogdGhpcy5hcGlVcmwsXHJcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhvcml6YXRpb24sXHJcbiAgICAgIH0sXHJcbiAgICAgIG1heEZpbGVzaXplOiB0aGlzLm1heEZpbGVTaXplLFxyXG4gICAgICBtYXhGaWxlczogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgdXBsb2FkTXVsdGlwbGU6IHRoaXMubXVsdGlwbGUgPiAxLFxyXG4gICAgICBkaWN0SW52YWxpZEZpbGVUeXBlOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9i12YrYutipINin2YTZhdmE2YEg2LrZitixINmF2LPZhdmI2K0g2KjZh9inJ1xyXG4gICAgICAgIDogJ3RoZSBmaWxlIGZvcm1hdCBpcyBub3QgYWxsb3dlZCcsXHJcbiAgICAgIGRpY3RGaWxlVG9vQmlnOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9in2YTYrdis2YUg2KrYrNin2YjYsiDYp9mE2K3YryDYp9mE2YXYs9mF2YjYrSdcclxuICAgICAgICA6IGB0aGUgZmlsZSBzaXplIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsICgke3RoaXMubWF4RmlsZVNpemV9KSBNQmAsXHJcbiAgICAgIGRpY3RNYXhGaWxlc0V4Y2VlZGVkOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9in2YTYsdis2KfYoSDYrdiw2YEg2KfZhNmF2YTZgdin2Kog2KfZhNmF2YjYrNmI2K/YqSDYrdin2YTZitinINmE2KrYqtmF2YPZhiDZhdmGINix2YHYuSDZh9iw2Kcg2KfZhNmF2YTZgSdcclxuICAgICAgICA6ICdQbGVhc2UgZGVsZXRlIGV4aXN0aW5nIGZpbGVzIHRvIGJlIGFibGUgdG8gdXBsb2FkIHRoaXMgZmlsZScsXHJcbiAgICAgIGFjY2VwdGVkRmlsZXM6IHRoaXMuYWNjZXB0ZWRGaWxlcyxcclxuICAgICAgYXV0b1Byb2Nlc3NRdWV1ZTogdGhpcy5hdXRvVXBsb2FkLFxyXG4gICAgICBwcmV2aWV3VGVtcGxhdGU6ICc8c3Bhbj48L3NwYW4+JyxcclxuICAgICAgZGljdFJlbW92ZUZpbGU6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9wZXJhdGlvbkNvbXBsZXRlZChlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbGVzQWRkZWQubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnN1Y2Nlc3NVcGxvYWQuZW1pdCh0aGlzLmZpbGVzQWRkZWQpO1xyXG4gICAgICB0aGlzLmZpbGVzQWRkZWQgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZHJvcHpvbmVEaXIucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkU3VjY2VzcyhlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbGUgPSBlWzBdO1xyXG4gICAgaWYgKGZpbGUuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkLnB1c2goZmlsZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICAgPyAn2KrZhSDYqtit2YXZitmEINin2YTZhdix2YHZgtin2Kog2KjZhtis2KfYrSdcclxuICAgICAgOiAnQXR0YWNobWVudHMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5JztcclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWRFcnJvcihlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChlWzFdKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goYCR7ZVsxXX0gKCR7ZVswXS5uYW1lfSlgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbGVXYXNBZGRlZChlOiBGaWxlKTogdm9pZCB7XHJcbiAgICBjb25zdCBteURyb3B6b25lID0gdGhpcy5kcm9wem9uZURpci5kcm9wem9uZSgpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgPT09IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RmlsZXMgPSBbXTtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIGNvbnN0IGZpbGVzID0gbXlEcm9wem9uZS5maWxlcztcclxuICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBteURyb3B6b25lLnJlbW92ZUZpbGUoZmlsZXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRGaWxlcy5wdXNoKGUpO1xyXG4gICAgdGhpcy5maWxlQWRkZWQuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIHNlbmRpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoZTogYW55KTogdm9pZCB7fVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50RmlsZXMgPSB0aGlzLmN1cnJlbnRGaWxlcy5maWx0ZXIoXHJcbiAgICAgICh4KSA9PiB4Lm5hbWUgIT09IGZpbGUubmFtZSAmJiB4LnNpemUgIT09IGZpbGUuc2l6ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICB0aGlzLmZpbGVEZWxldGVkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLW92ZXJsYXlcIiBbZHJvcHpvbmVdPVwiY29uZmlnXCIgKGVycm9yKT1cIm9uVXBsb2FkRXJyb3IoJGV2ZW50KVwiXHJcbiAgICAgICAgKHF1ZXVlQ29tcGxldGUpPVwib3BlcmF0aW9uQ29tcGxldGVkKCRldmVudClcIiAoc3VjY2Vzcyk9XCJvblVwbG9hZFN1Y2Nlc3MoJGV2ZW50KVwiIChkcmFnZW50ZXIpPVwiZHJhZ0VudGVyID0gdHJ1ZVwiXHJcbiAgICAgICAgKGRyYWdMZWF2ZSk9XCJkcmFnRW50ZXIgPSBmYWxzZVwiIChkcm9wKT1cImRyYWdFbnRlciA9IGZhbHNlXCIgKGRyYWdFbmQpPVwiZHJhZ0VudGVyID0gZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmUtYm9yZGVyXT1cImRyYWdFbnRlclwiIChzZW5kaW5nKT1cInNlbmRpbmcoJGV2ZW50KVwiIChyZXNldCk9XCJyZXNldCgkZXZlbnQpXCJcclxuICAgICAgICAoYWRkZWRGaWxlKT1cImZpbGVXYXNBZGRlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtYnRuLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPnt7aXNBcmFiaWNGb3JtPyAn2YLZhSDYqNiz2K3YqCDYp9mE2YXZhNmBINij2Ygg2KfYtti62Lcg2YfZhtinJyA6ICdkcmFnIG9yIGNsaWNrIGhlcmUnfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXVwbG9hZCB1cGxvYWQtaWNvbiBtci0yXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhY2NlcHRlZEZpbGVzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImFsbG93ZWQtZXh0ZW5zaW9uc1wiPlxyXG4gICAgICAgICAgIHt7aXNBcmFiaWNGb3JtPyAn2KfZhNi12YrYutipINin2YTZhdiz2YXZiNitINio2YfYpzonIDogJ0FsbG93ZWQgZm9ybWF0Oid9fSBcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRlbnNpb25zXCI+e3sgYWNjZXB0ZWRGaWxlcyB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxsb3dlZC1leHRlbnNpb25zXCI+XHJcbiAgICAgICAgICAgIHt7aXNBcmFiaWNGb3JtPyAn2KfZgti12Ykg2K3YrNmFINmE2YTZhdix2YHZgjonIDogJ0F0dGFjaG1lbnQgU2l6ZTonfX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRlbnNpb25zXCI+e3sgbWF4RmlsZVNpemUgfX0gTUI8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgaWQ9XCJhdHRhY2htZW50LXN0YXR1c1wiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7XCI+XHJcbiAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luOiBhdXRvOyBmb250LXdlaWdodDpib2xkO1wiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGN1cnJlbnRGaWxlc1wiPlxyXG4gICAgICAgIHt7IGZpbGUubmFtZSB9fSA8aSAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlKVwiIGNsYXNzPVwiZmFzIGZhLXRyYXNoXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjpmaXJlYnJpY2s7IGN1cnNvcjogcG9pbnRlcjtcIj48L2k+XHJcbiAgICAgICAgPGJyPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInRleHQtZGFuZ2VyXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9yc1wiPnt7ZXJyb3J9fTwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj4iXX0=
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFPOUIsTUFBTSxPQUFPLG1CQUFtQjtJQXNCOUI7SUFDRSxvQ0FBb0M7SUFDNUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFyQjdCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkUsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxRQUFRLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFdB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RyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQge1xyXG4gIERyb3B6b25lQ29uZmlnSW50ZXJmYWNlLFxyXG4gIERyb3B6b25lRGlyZWN0aXZlLFxyXG59IGZyb20gJ25neC1kcm9wem9uZS13cmFwcGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWZpbGUtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKERyb3B6b25lRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBkcm9wem9uZURpciE6IERyb3B6b25lRGlyZWN0aXZlO1xyXG4gIEBJbnB1dCgpIGlzQXJhYmljRm9ybSA9IHRydWU7XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjY2VwdGVkRmlsZXMgPSAnJztcclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IDE7IC8vIHNldCBtYXhGaWxlcyAoTk9UIHVwbG9hZE11bHRpcGxlKWluIHRoZSBjb25maWcgb2JqZWN0LFxyXG4gIEBJbnB1dCgpIG1heEZpbGVTaXplID0gMjtcclxuICBASW5wdXQoKSBtZXRob2QgPSAnUE9TVCc7XHJcbiAgQElucHV0KCkgYXV0b1VwbG9hZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFwaVVybCA9ICdhcGlVcmwnO1xyXG4gIEBJbnB1dCgpIGF1dGhvcml6YXRpb24hOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHN1Y2Nlc3NVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZpbGVBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZURlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZHJhZ0VudGVyID0gZmFsc2U7XHJcbiAgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNvbmZpZyE6IERyb3B6b25lQ29uZmlnSW50ZXJmYWNlO1xyXG4gIGZpbGVzQWRkZWQ6IEZpbGVbXSA9IFtdO1xyXG4gIGN1cnJlbnRGaWxlczogRmlsZVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYWJlbCA9ICh0aGlzLmlzQXJhYmljRm9ybSA/ICfYsdmB2LkgJyA6ICdVcGxvYWQgJykgKyB0aGlzLmxhYmVsO1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIHVybDogdGhpcy5hcGlVcmwsXHJcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhvcml6YXRpb24sXHJcbiAgICAgIH0sXHJcbiAgICAgIG1heEZpbGVzaXplOiB0aGlzLm1heEZpbGVTaXplLFxyXG4gICAgICBtYXhGaWxlczogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgdXBsb2FkTXVsdGlwbGU6IHRoaXMubXVsdGlwbGUgPiAxLFxyXG4gICAgICBkaWN0SW52YWxpZEZpbGVUeXBlOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9i12YrYutipINin2YTZhdmE2YEg2LrZitixINmF2LPZhdmI2K0g2KjZh9inJ1xyXG4gICAgICAgIDogJ3RoZSBmaWxlIGZvcm1hdCBpcyBub3QgYWxsb3dlZCcsXHJcbiAgICAgIGRpY3RGaWxlVG9vQmlnOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9in2YTYrdis2YUg2KrYrNin2YjYsiDYp9mE2K3YryDYp9mE2YXYs9mF2YjYrSdcclxuICAgICAgICA6IGB0aGUgZmlsZSBzaXplIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsICgke3RoaXMubWF4RmlsZVNpemV9KSBNQmAsXHJcbiAgICAgIGRpY3RNYXhGaWxlc0V4Y2VlZGVkOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9in2YTYsdis2KfYoSDYrdiw2YEg2KfZhNmF2YTZgdin2Kog2KfZhNmF2YjYrNmI2K/YqSDYrdin2YTZitinINmE2KrYqtmF2YPZhiDZhdmGINix2YHYuSDZh9iw2Kcg2KfZhNmF2YTZgSdcclxuICAgICAgICA6ICdQbGVhc2UgZGVsZXRlIGV4aXN0aW5nIGZpbGVzIHRvIGJlIGFibGUgdG8gdXBsb2FkIHRoaXMgZmlsZScsXHJcbiAgICAgIGFjY2VwdGVkRmlsZXM6IHRoaXMuYWNjZXB0ZWRGaWxlcyxcclxuICAgICAgYXV0b1Byb2Nlc3NRdWV1ZTogdGhpcy5hdXRvVXBsb2FkLFxyXG4gICAgICBwcmV2aWV3VGVtcGxhdGU6ICc8c3Bhbj48L3NwYW4+JyxcclxuICAgICAgZGljdFJlbW92ZUZpbGU6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9wZXJhdGlvbkNvbXBsZXRlZChlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbGVzQWRkZWQubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnN1Y2Nlc3NVcGxvYWQuZW1pdCh0aGlzLmZpbGVzQWRkZWQpO1xyXG4gICAgICB0aGlzLmZpbGVzQWRkZWQgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZHJvcHpvbmVEaXIucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkU3VjY2VzcyhlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbGUgPSBlWzBdO1xyXG4gICAgaWYgKGZpbGUuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkLnB1c2goZmlsZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICAgPyAn2KrZhSDYqtit2YXZitmEINin2YTZhdix2YHZgtin2Kog2KjZhtis2KfYrSdcclxuICAgICAgOiAnQXR0YWNobWVudHMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5JztcclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWRFcnJvcihlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChlWzFdKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goYCR7ZVsxXX0gKCR7ZVswXS5uYW1lfSlgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbGVXYXNBZGRlZChlOiBGaWxlKTogdm9pZCB7XHJcbiAgICBjb25zdCBteURyb3B6b25lID0gdGhpcy5kcm9wem9uZURpci5kcm9wem9uZSgpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgPT09IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RmlsZXMgPSBbXTtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIGNvbnN0IGZpbGVzID0gbXlEcm9wem9uZS5maWxlcztcclxuICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBteURyb3B6b25lLnJlbW92ZUZpbGUoZmlsZXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRGaWxlcy5wdXNoKGUpO1xyXG4gICAgdGhpcy5maWxlQWRkZWQuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIHNlbmRpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoZTogYW55KTogdm9pZCB7fVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50RmlsZXMgPSB0aGlzLmN1cnJlbnRGaWxlcy5maWx0ZXIoXHJcbiAgICAgICh4KSA9PiB4Lm5hbWUgIT09IGZpbGUubmFtZSAmJiB4LnNpemUgIT09IGZpbGUuc2l6ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICB0aGlzLmZpbGVEZWxldGVkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLW92ZXJsYXlcIiBbZHJvcHpvbmVdPVwiY29uZmlnXCIgKGVycm9yKT1cIm9uVXBsb2FkRXJyb3IoJGV2ZW50KVwiXHJcbiAgICAgICAgKHF1ZXVlQ29tcGxldGUpPVwib3BlcmF0aW9uQ29tcGxldGVkKCRldmVudClcIiAoc3VjY2Vzcyk9XCJvblVwbG9hZFN1Y2Nlc3MoJGV2ZW50KVwiIChkcmFnZW50ZXIpPVwiZHJhZ0VudGVyID0gdHJ1ZVwiXHJcbiAgICAgICAgKGRyYWdMZWF2ZSk9XCJkcmFnRW50ZXIgPSBmYWxzZVwiIChkcm9wKT1cImRyYWdFbnRlciA9IGZhbHNlXCIgKGRyYWdFbmQpPVwiZHJhZ0VudGVyID0gZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmUtYm9yZGVyXT1cImRyYWdFbnRlclwiIChzZW5kaW5nKT1cInNlbmRpbmcoJGV2ZW50KVwiIChyZXNldCk9XCJyZXNldCgkZXZlbnQpXCJcclxuICAgICAgICAoYWRkZWRGaWxlKT1cImZpbGVXYXNBZGRlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtYnRuLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPnt7aXNBcmFiaWNGb3JtPyAn2YLZhSDYqNiz2K3YqCDYp9mE2YXZhNmBINij2Ygg2KfYtti62Lcg2YfZhtinJyA6ICdkcmFnIG9yIGNsaWNrIGhlcmUnfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXVwbG9hZCB1cGxvYWQtaWNvbiBtci0yXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhY2NlcHRlZEZpbGVzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImFsbG93ZWQtZXh0ZW5zaW9uc1wiPlxyXG4gICAgICAgICAgIHt7aXNBcmFiaWNGb3JtPyAn2KfZhNi12YrYutipINin2YTZhdiz2YXZiNitINio2YfYpzonIDogJ0FsbG93ZWQgZm9ybWF0Oid9fSBcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRlbnNpb25zXCI+e3sgYWNjZXB0ZWRGaWxlcyB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxsb3dlZC1leHRlbnNpb25zXCI+XHJcbiAgICAgICAgICAgIHt7aXNBcmFiaWNGb3JtPyAn2KfZgti12Ykg2K3YrNmFINmE2YTZhdix2YHZgjonIDogJ0F0dGFjaG1lbnQgU2l6ZTonfX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRlbnNpb25zXCI+e3sgbWF4RmlsZVNpemUgfX0gTUI8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgaWQ9XCJhdHRhY2htZW50LXN0YXR1c1wiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7XCI+XHJcbiAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luOiBhdXRvOyBmb250LXdlaWdodDpib2xkO1wiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGN1cnJlbnRGaWxlc1wiPlxyXG4gICAgICAgIHt7IGZpbGUubmFtZSB9fSA8aSAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlKVwiIGNsYXNzPVwiZmFzIGZhLXRyYXNoXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjpmaXJlYnJpY2s7IGN1cnNvcjogcG9pbnRlcjtcIj48L2k+XHJcbiAgICAgICAgPGJyPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInRleHQtZGFuZ2VyXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9yc1wiPnt7ZXJyb3J9fTwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj4iXX0=
|
|
@@ -49,6 +49,21 @@ export class IPAFormService {
|
|
|
49
49
|
}
|
|
50
50
|
return isValid || !value ? null : { checkId: true };
|
|
51
51
|
}
|
|
52
|
+
static validHijriDate(control) {
|
|
53
|
+
const date = control.value;
|
|
54
|
+
const isValid = IPAFormService.checkHijriDateValid(date);
|
|
55
|
+
return isValid
|
|
56
|
+
? null
|
|
57
|
+
: {
|
|
58
|
+
ngbDate: {
|
|
59
|
+
invalid: date?.year +
|
|
60
|
+
'-' +
|
|
61
|
+
(date?.month > 10 ? date?.month : '0' + date?.month) +
|
|
62
|
+
'-' +
|
|
63
|
+
(date?.day > 10 ? date?.day : '0' + date?.day),
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
52
67
|
getErrorMessage(control, patternErrorMsg = '', isArabic) {
|
|
53
68
|
for (const propertyName in control?.errors) {
|
|
54
69
|
if (control?.errors.hasOwnProperty(propertyName) &&
|
|
@@ -87,7 +102,8 @@ export class IPAFormService {
|
|
|
87
102
|
const config = {
|
|
88
103
|
required: isArabic ? 'هذا الحقل مطلوب' : 'this field required',
|
|
89
104
|
pattern: `${validatorValue.message}`,
|
|
90
|
-
Email: 'خطأ في البريد الالكتروني
|
|
105
|
+
Email: (isArabic ? 'خطأ في البريد الالكتروني ' : 'Invalid email ') +
|
|
106
|
+
'(example@example.com)',
|
|
91
107
|
maxlength: isArabic
|
|
92
108
|
? `تجاوز عدد الحقل المسموح بها (${validatorValue.requiredLength}) حرف`
|
|
93
109
|
: `this field is more than (${validatorValue.requiredLength}) letter`,
|
|
@@ -101,10 +117,15 @@ export class IPAFormService {
|
|
|
101
117
|
? `رقم اصغر من أو يساوي ${validatorValue.max}`
|
|
102
118
|
: `number less than or equal (${validatorValue.min})`,
|
|
103
119
|
ngbDate: this.getNgbDatepickerErrorMsg(validatorValue),
|
|
104
|
-
checkId:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
120
|
+
checkId: isArabic
|
|
121
|
+
? 'رقم الهوية أو الاقامة غير صحيح'
|
|
122
|
+
: 'Wrong ID or Iqama number',
|
|
123
|
+
link: (isArabic ? 'الرابط غير صحيح ' : 'Wrong link ') +
|
|
124
|
+
'(http://example.com)',
|
|
125
|
+
linkMP4: (isArabic ? 'رابط MP4 غير صحيح ' : 'Wrong MP4 link ') +
|
|
126
|
+
'(http://example.com/example.mp4)',
|
|
127
|
+
mobileNo: (isArabic ? 'خطأ في رقم الجوال ' : 'Wrong mobile number ') +
|
|
128
|
+
'(05xxxxxxxx)',
|
|
108
129
|
};
|
|
109
130
|
return config[validatorName];
|
|
110
131
|
}
|
|
@@ -128,6 +149,13 @@ export class IPAFormService {
|
|
|
128
149
|
}
|
|
129
150
|
return msg;
|
|
130
151
|
}
|
|
152
|
+
static checkHijriDateValid(date) {
|
|
153
|
+
return !(momentHijri.iDaysInMonth(date?.year, date?.month - 1) < date?.day ||
|
|
154
|
+
date?.day <= 0 ||
|
|
155
|
+
date?.month <= 0 ||
|
|
156
|
+
date?.month > 12 ||
|
|
157
|
+
date?.year?.toString().length !== 4);
|
|
158
|
+
}
|
|
131
159
|
static convertToEn(value) {
|
|
132
160
|
let newValue = '';
|
|
133
161
|
for (let i = 0; i < value.length; i++) {
|
|
@@ -259,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
259
287
|
providedIn: 'root',
|
|
260
288
|
}]
|
|
261
289
|
}], ctorParameters: function () { return [{ type: i1.NgbDateParserFormatter }]; } });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhLWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sV0FBVyxNQUFNLGNBQWMsQ0FBQzs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtJQUFHLENBQUM7SUFFL0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLE1BQU0sV0FBVyxHQUNmLHVEQUF1RCxDQUFDLElBQUksQ0FDMUQsT0FBTyxDQUFDLEtBQUssQ0FDZCxDQUFDO1FBQ0osT0FBTyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxNQUFNLFdBQVcsR0FDZixrRkFBa0YsQ0FBQyxJQUFJLENBQ3JGLE9BQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztRQUNKLE9BQU8sV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sV0FB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O2lCQUFNO2dCQUNMLGNBQWMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNyRTtZQUNELElBQUksY0FBYyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsVUFBVSxHQUFHLENBQUMsQ0FBQzthQUNoQjtpQkFBTTtnQkFDTCxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNoRDtZQUNELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsSUFDRSxVQUFVO2dCQUNSLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDMUQsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFO2dCQUNsQixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQzVCO2dCQUNBLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7MkdBelNVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCBtb21lbnRIaWpyaSBmcm9tICdtb21lbnQtaGlqcmknO1xyXG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIElQQUZvcm1TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcnNlckZvcm1hdHRlcjogTmdiRGF0ZVBhcnNlckZvcm1hdHRlcikge31cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgbGluayBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgbGlua1ZhbGlkYXRpb24oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPVxyXG4gICAgICAvXigoaHR0cHM/OlxcL1xcLylbXFx3LV0rKFxcLlthLXotXSspK1xcLj8oOlxcZCspPyhcXC9cXFMqKT8pJC8udGVzdChcclxuICAgICAgICBjb250cm9sLnZhbHVlXHJcbiAgICAgICk7XHJcbiAgICByZXR1cm4gaXNWYWxpZExpbmsgfHwgIWNvbnRyb2wudmFsdWUgPyBudWxsIDogeyBsaW5rOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBtcDQgbGluayBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgbXA0TGlua1ZhbGlkYXRpb24oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPVxyXG4gICAgICAvXigoaHR0cHM/OlxcL1xcLylbXFx3LV0rKFxcLlthLXotXSspK1xcLj8oOlxcZCspPyhcXC9cXFMqKT8oXFwvW1xcd1xcdTA2MDAtXFx1MDZGRl0rXFwubXA0KSkkLy50ZXN0KFxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVcclxuICAgICAgKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IGxpbmtNUDQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIG1vYmlsZSBudW1iZXIgaXMgdmFsaWQuXHJcbiAgICovXHJcbiAgc3RhdGljIG1vYmlsZU5vKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGlzVmFsaWRMaW5rID0gL14wNVxcZHs4fSQvLnRlc3QoY29udHJvbC52YWx1ZSk7XHJcbiAgICByZXR1cm4gaXNWYWxpZExpbmsgfHwgIWNvbnRyb2wudmFsdWUgPyBudWxsIDogeyBtb2JpbGVObzogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgZW1haWwgaXMgdmFsaWQuXHJcbiAgICovXHJcbiAgc3RhdGljIGVtYWlsKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGlzVmFsaWRMaW5rID1cclxuICAgICAgL14oKFtePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl0rKFxcLltePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl0rKSopfChcXFwiLitcXFwiKSlAKChbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdK1xcLikrW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXXsyLH0pJC8udGVzdChcclxuICAgICAgICBjb250cm9sLnZhbHVlXHJcbiAgICAgICk7XHJcbiAgICByZXR1cm4gaXNWYWxpZExpbmsgfHwgIWNvbnRyb2wudmFsdWUgPyBudWxsIDogeyBFbWFpbDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgbmF0aW9uYWwgSUQgb3IgaXFhbWEgSUQgaXMgdmFsaWQuXHJcbiAgICovXHJcbiAgc3RhdGljIGNoZWNrSUQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgbGV0IGlzVmFsaWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcclxuICAgIGlmIChcclxuICAgICAgSVBBRm9ybVNlcnZpY2UubmF0aW9uYWxJZFZhbGlkYXRlKHZhbHVlKSB8fFxyXG4gICAgICBJUEFGb3JtU2VydmljZS5pcWFtYUlkVmFsaWRhdGUodmFsdWUpXHJcbiAgICApIHtcclxuICAgICAgaXNWYWxpZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNWYWxpZCB8fCAhdmFsdWUgPyBudWxsIDogeyBjaGVja0lkOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoXHJcbiAgICBjb250cm9sOiBGb3JtQ29udHJvbCxcclxuICAgIHBhdHRlcm5FcnJvck1zZyA9ICcnLFxyXG4gICAgaXNBcmFiaWM6IGJvb2xlYW5cclxuICApOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIGNvbnRyb2w/LmVycm9ycykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgY29udHJvbD8uZXJyb3JzLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkgJiZcclxuICAgICAgICAoY29udHJvbC50b3VjaGVkIHx8IGNvbnRyb2wuZGlydHkpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckVycm9yTWVzc2FnZShcclxuICAgICAgICAgIHByb3BlcnR5TmFtZSxcclxuICAgICAgICAgIGNvbnRyb2wuZXJyb3JzW3Byb3BlcnR5TmFtZV0sXHJcbiAgICAgICAgICBwYXR0ZXJuRXJyb3JNc2csXHJcbiAgICAgICAgICBpc0FyYWJpY1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY29udmVydCBncmVnb3JpYW4gZGF0ZSB0byBoaWpyaSBkYXRlIChCYXNlZCBvbiBVbW0gYWwtUXVyYSBjYWxjdWxhdGlvbnMpLlxyXG4gICAqIEBwYXJhbSBkYXRlOiBncmVnb3JpYW4gZGF0ZVxyXG4gICAqIEBwYXJhbSBmb3JtYXQ6IGlERCA9PiBkYXk6INmh2aUsIGlNTSA9PiBtb250aDog2aDZpCwgaU1NTSA9PiBtb250aDog2LHYqNmK2Lkg2aIsXHJcbiAgICogICAgICAgICAgICAgICBpTU1NTSA9PiDYsdio2YrYuSDYp9mE2KvYp9mG2YosICBpWVkgPT4geWVhcjog2aTZoiwgaVlZWVkgPT4geWVhcjog2aHZpNmk2aIsXHJcbiAgICogICAgICAgICAgICAgICBkZCA9PiDZhiwgZGRkID0+INil2KvZhtmK2YYsIGRkZGQgPT4g2KfZhNil2KvZhtmK2YZcclxuICAgKiBAZXhhbXBsZSAnaVlZWVkvaU0vaUTZh9mAINin2YTZhdmI2KfZgdmCIFlZWVkvTS9E2YUnXHJcbiAgICogICAgICAgICAgICfZodmk2aTZoi/ZoNmkL9mh2aXZh9mAINin2YTZhdmI2KfZgdmCINmi2aDZotmgL9mh2aEv2aPZoCdcclxuICAgKi9cclxuICBjb252ZXJ0VG9IaWpyaURhdGUoXHJcbiAgICBkYXRlOiBzdHJpbmcsXHJcbiAgICBmb3JtYXQgPSAnaVlZWVktaU1NLWlERCcsXHJcbiAgICBsYW5nID0gJ2FyLVNBJ1xyXG4gICk6IHN0cmluZyB7XHJcbiAgICBtb21lbnRIaWpyaS5sb2NhbGUobGFuZyk7XHJcbiAgICByZXR1cm4gbW9tZW50SGlqcmkoZGF0ZSkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9HcmVnb3JpYW5EYXRlKFxyXG4gICAgZGF0ZTogTW9tZW50LFxyXG4gICAgZm9ybWF0ID0gJ1lZWVktTU0tREQnLFxyXG4gICAgbGFuZyA9ICdlbidcclxuICApOiBzdHJpbmcge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKGxhbmcpO1xyXG4gICAgY29uc3QgbSA9IG1vbWVudEhpanJpLmlDb252ZXJ0LnRvR3JlZ29yaWFuKFxyXG4gICAgICBkYXRlLnllYXIoKSxcclxuICAgICAgZGF0ZS5tb250aCgpLFxyXG4gICAgICBkYXRlLmRhdGUoKVxyXG4gICAgKTtcclxuICAgIHJldHVybiBtb21lbnRIaWpyaShuZXcgRGF0ZShtLmd5LCBtLmdtLCBtLmdkKSkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50SGlqcmlEYXRlKCkge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKCdlbicpO1xyXG4gICAgcmV0dXJuIG1vbWVudEhpanJpKCkuZm9ybWF0KCdpWVlZWS9pTU0vaUREJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFZhbGlkYXRvckVycm9yTWVzc2FnZShcclxuICAgIHZhbGlkYXRvck5hbWU6IHN0cmluZyxcclxuICAgIHZhbGlkYXRvclZhbHVlOiBhbnksXHJcbiAgICBwYXR0ZXJuRXJyb3JNc2c6IHN0cmluZyxcclxuICAgIGlzQXJhYmljOiBib29sZWFuXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWxpZGF0b3JOYW1lID09PSAncGF0dGVybicpIHtcclxuICAgICAgdmFsaWRhdG9yVmFsdWUgPSB0aGlzLmFkZFBhdHRlcm5Nc2codmFsaWRhdG9yVmFsdWUsIHBhdHRlcm5FcnJvck1zZyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWc6IGFueSA9IHtcclxuICAgICAgcmVxdWlyZWQ6IGlzQXJhYmljID8gJ9mH2LDYpyDYp9mE2K3ZgtmEINmF2LfZhNmI2KgnIDogJ3RoaXMgZmllbGQgcmVxdWlyZWQnLFxyXG4gICAgICBwYXR0ZXJuOiBgJHt2YWxpZGF0b3JWYWx1ZS5tZXNzYWdlfWAsXHJcbiAgICAgIEVtYWlsOiAn2K7Yt9ijINmB2Yog2KfZhNio2LHZitivINin2YTYp9mE2YPYqtix2YjZhtmKIChleGFtcGxlQGlwYS5lZHUuc2EpJyxcclxuICAgICAgbWF4bGVuZ3RoOiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNiq2KzYp9mI2LIg2LnYr9ivINin2YTYrdmC2YQg2KfZhNmF2LPZhdmI2K0g2KjZh9inICgke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSkg2K3YsdmBYFxyXG4gICAgICAgIDogYHRoaXMgZmllbGQgaXMgbW9yZSB0aGFuICgke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSkgbGV0dGVyYCxcclxuICAgICAgbWlubGVuZ3RoOiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNi52YTZiSDYp9mE2KPZgtmEINi52K/YryAke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSDYrdix2YFgXHJcbiAgICAgICAgOiBgdGhpcyBmaWVsZCBpcyBsZXNzIHRoYW4gKCR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9KSBsZXR0ZXJgLFxyXG4gICAgICBtaW46IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2LHZgtmFINin2YPYqNixINmF2YYg2KPZiCDZitiz2KfZiNmKICR7dmFsaWRhdG9yVmFsdWUubWlufWBcclxuICAgICAgICA6IGBudW1iZXIgbW9yZSB0aGFuIG9yIGVxdWFsICgke3ZhbGlkYXRvclZhbHVlLm1pbn0pYCxcclxuICAgICAgbWF4OiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNix2YLZhSDYp9i12LrYsSDZhdmGINij2Ygg2YrYs9in2YjZiiAke3ZhbGlkYXRvclZhbHVlLm1heH1gXHJcbiAgICAgICAgOiBgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCAoJHt2YWxpZGF0b3JWYWx1ZS5taW59KWAsXHJcbiAgICAgIG5nYkRhdGU6IHRoaXMuZ2V0TmdiRGF0ZXBpY2tlckVycm9yTXNnKHZhbGlkYXRvclZhbHVlKSxcclxuICAgICAgY2hlY2tJZDogJ9ix2YLZhSDYp9mE2YfZiNmK2Kkg2KPZiCDYp9mE2KfZgtin2YXYqSDYutmK2LEg2LXYrdmK2K0nLFxyXG4gICAgICBsaW5rOiAn2KfZhNix2KfYqNi3INi62YrYsSDYtdit2YrYrSAoaHR0cDovL2dvb2dsZS5jb20pJyxcclxuICAgICAgbGlua01QNDogJ9in2YTYsdin2KjYtyDYutmK2LEg2LXYrdmK2K0gKGh0dHA6Ly9leGFtcGxlLmNvbS9hLm1wNCknLFxyXG4gICAgICBtb2JpbGVObzogJ9iu2LfYoyDZgdmKINix2YLZhSDYp9mE2KzZiNin2YQgKDA1eHh4eHh4eHgpJyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gY29uZmlnW3ZhbGlkYXRvck5hbWVdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRQYXR0ZXJuTXNnKHZhbGlkYXRvclZhbHVlOiBhbnksIHBhdHRlcm5FcnJvck1zZzogc3RyaW5nKSB7XHJcbiAgICBsZXQgcGF0dGVybiA9IHtcclxuICAgICAgLi4udmFsaWRhdG9yVmFsdWUsXHJcbiAgICAgIG1lc3NhZ2U6IHBhdHRlcm5FcnJvck1zZyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gcGF0dGVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TmdiRGF0ZXBpY2tlckVycm9yTXNnKHZhbGlkYXRvclZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgaWYgKHZhbGlkYXRvclZhbHVlLm1heERhdGUpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1heERhdGUuYWN0dWFsXHJcbiAgICAgICl9XCIg2KfZg9io2LEg2YXZhiDYqtin2LHZitiuINin2YTZitmI2YUgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5tYXhEYXRlLm1heERhdGVcclxuICAgICAgKX1cImA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRvclZhbHVlLm1pbkRhdGUpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1pbkRhdGUuYWN0dWFsXHJcbiAgICAgICl9XCIg2YrYrNioINin2YYg2YrZg9mI2YYg2KfZg9io2LEg2YXZhiDYo9mIINmK2LPYp9mI2Yog2KrYp9ix2YrYriDYp9mE2KjYr9in2YrYqSBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1pbkRhdGUubWluRGF0ZVxyXG4gICAgICApfVwiYDtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yVmFsdWUuaW52YWxpZCkge1xyXG4gICAgICBtc2cgPSBg2KfZhNiq2KfYsdmK2K4g2KfZhNmF2K/YrtmEINi62YrYsSDYtdit2YrYrSAke3ZhbGlkYXRvclZhbHVlLmludmFsaWR9LmA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbXNnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY29udmVydFRvRW4odmFsdWU6IHN0cmluZykge1xyXG4gICAgbGV0IG5ld1ZhbHVlID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBjaCA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgIGlmIChjaCA+PSAxNTg0ICYmIGNoIDw9IDE2NTApIHtcclxuICAgICAgICBsZXQgbmV3Q2hhciA9IGNoIC0gMTU4NDtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICsgU3RyaW5nLmZyb21DaGFyQ29kZShuZXdDaGFyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIG5hdGlvbmFsSWRWYWxpZGF0ZShjaXZpbElkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmIChjaXZpbElkKSB7XHJcbiAgICAgIGxldCBzdHJJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGxldCBkaWdpdHMgPSAnJztcclxuICAgICAgbGV0IGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IDkpIHtcclxuICAgICAgICBpZiAoKGNvdW50ZXIgKyAxKSAlIDIgPT0gMCkge1xyXG4gICAgICAgICAgZGlnaXRzID0gZGlnaXRzICsgc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGlnaXRzID1cclxuICAgICAgICAgICAgZGlnaXRzICsgKCtzdHJJRC5zdWJzdHJpbmcoY291bnRlciwgY291bnRlciArIDEpICogMikudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY291bnRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBpbnRTdW0gPSAwO1xyXG4gICAgICBsZXQgaW50U3VtVGVtcCA9IDA7XHJcbiAgICAgIGxldCBzdHJTdW07XHJcbiAgICAgIGxldCBpbnRPZGRTdW1EaWdpdDtcclxuICAgICAgbGV0IENoZWNrRGlnaXQ7XHJcbiAgICAgIGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IGRpZ2l0cy5sZW5ndGgpIHtcclxuICAgICAgICBpbnRTdW1UZW1wID0gK2RpZ2l0cy5jaGFyQXQoY291bnRlcikgKiAxO1xyXG4gICAgICAgIGludFN1bSArPSBpbnRTdW1UZW1wO1xyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBzdHJTdW0gPSBpbnRTdW0udG9TdHJpbmcoKTtcclxuICAgICAgaWYgKHN0clN1bS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gaW50U3VtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gc3RyU3VtLnN1YnN0cmluZyhzdHJTdW0ubGVuZ3RoLCBzdHJTdW0ubGVuZ3RoIC0gMSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGludE9kZFN1bURpZ2l0ID09IDApIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gKDEwIC0gK2ludE9kZFN1bURpZ2l0KS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBQdWJsaWNJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBDaGVja0RpZ2l0ID09XHJcbiAgICAgICAgICBQdWJsaWNJRC5zdWJzdHJpbmcoUHVibGljSUQubGVuZ3RoIC0gMSwgUHVibGljSUQubGVuZ3RoKSAmJlxyXG4gICAgICAgIHN0cklELmxlbmd0aCA9PSAxMCAmJlxyXG4gICAgICAgIHN0cklELnN1YnN0cmluZygwLCAxKSA9PSAnMSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBpcWFtYUlkVmFsaWRhdGUoY2l2aWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY2l2aWxJZCkge1xyXG4gICAgICBsZXQgc3RySUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBsZXQgZGlnaXRzID0gJyc7XHJcbiAgICAgIGxldCBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCA5KSB7XHJcbiAgICAgICAgaWYgKChjb3VudGVyICsgMSkgJSAyID09IDApIHtcclxuICAgICAgICAgIGRpZ2l0cyA9IGRpZ2l0cyArIHN0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRpZ2l0cyA9XHJcbiAgICAgICAgICAgIGRpZ2l0cyArICgrc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKSAqIDIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW50U3VtID0gMDtcclxuICAgICAgbGV0IGludFN1bVRlbXAgPSAwO1xyXG4gICAgICBsZXQgc3RyU3VtO1xyXG4gICAgICBsZXQgaW50T2RkU3VtRGlnaXQ7XHJcbiAgICAgIGxldCBDaGVja0RpZ2l0O1xyXG4gICAgICBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCBkaWdpdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgaW50U3VtVGVtcCA9ICtkaWdpdHMuY2hhckF0KGNvdW50ZXIpICogMTtcclxuICAgICAgICBpbnRTdW0gKz0gaW50U3VtVGVtcDtcclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgc3RyU3VtID0gaW50U3VtLnRvU3RyaW5nKCk7XHJcbiAgICAgIGlmIChzdHJTdW0ubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IGludFN1bTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IHN0clN1bS5zdWJzdHJpbmcoc3RyU3VtLmxlbmd0aCwgc3RyU3VtLmxlbmd0aCAtIDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRPZGRTdW1EaWdpdCA9PSAwKSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9ICgxMCAtICtpbnRPZGRTdW1EaWdpdCkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgUHVibGljSUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9PVxyXG4gICAgICAgICAgUHVibGljSUQuc3Vic3RyaW5nKFB1YmxpY0lELmxlbmd0aCAtIDEsIFB1YmxpY0lELmxlbmd0aCkgJiZcclxuICAgICAgICBzdHJJRC5sZW5ndGggPT0gMTAgJiZcclxuICAgICAgICBzdHJJRC5zdWJzdHJpbmcoMCwgMSkgPT0gJzInXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhLWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sV0FBVyxNQUFNLGNBQWMsQ0FBQzs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtJQUFHLENBQUM7SUFFL0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLE1BQU0sV0FBVyxHQUNmLHVEQUF1RCxDQUFDLElBQUksQ0FDMUQsT0FBTyxDQUFDLEtBQUssQ0FDZCxDQUFDO1FBQ0osT0FBTyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxNQUFNLFdBQVcsR0FDZixrRkFBa0YsQ0FBQyxJQUFJLENBQ3JGLE9BQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztRQUNKLE9BQU8sV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sV0FB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgbW9tZW50SGlqcmkgZnJvbSAnbW9tZW50LWhpanJpJztcclxuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgTmdiRGF0ZSwgTmdiRGF0ZVBhcnNlckZvcm1hdHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJUEFGb3JtU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJzZXJGb3JtYXR0ZXI6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIGxpbmsgaXMgdmFsaWQuXHJcbiAgICovXHJcbiAgc3RhdGljIGxpbmtWYWxpZGF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGlzVmFsaWRMaW5rID1cclxuICAgICAgL14oKGh0dHBzPzpcXC9cXC8pW1xcdy1dKyhcXC5bYS16LV0rKStcXC4/KDpcXGQrKT8oXFwvXFxTKik/KSQvLnRlc3QoXHJcbiAgICAgICAgY29udHJvbC52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgbGluazogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgbXA0IGxpbmsgaXMgdmFsaWQuXHJcbiAgICovXHJcbiAgc3RhdGljIG1wNExpbmtWYWxpZGF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGlzVmFsaWRMaW5rID1cclxuICAgICAgL14oKGh0dHBzPzpcXC9cXC8pW1xcdy1dKyhcXC5bYS16LV0rKStcXC4/KDpcXGQrKT8oXFwvXFxTKik/KFxcL1tcXHdcXHUwNjAwLVxcdTA2RkZdK1xcLm1wNCkpJC8udGVzdChcclxuICAgICAgICBjb250cm9sLnZhbHVlXHJcbiAgICAgICk7XHJcbiAgICByZXR1cm4gaXNWYWxpZExpbmsgfHwgIWNvbnRyb2wudmFsdWUgPyBudWxsIDogeyBsaW5rTVA0OiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBtb2JpbGUgbnVtYmVyIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBtb2JpbGVObyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9IC9eMDVcXGR7OH0kLy50ZXN0KGNvbnRyb2wudmFsdWUpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgbW9iaWxlTm86IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIGVtYWlsIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBlbWFpbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXStcXC4pK1tePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl17Mix9KSQvLnRlc3QoXHJcbiAgICAgICAgY29udHJvbC52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgRW1haWw6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIG5hdGlvbmFsIElEIG9yIGlxYW1hIElEIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBjaGVja0lEKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGxldCBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICBpZiAoXHJcbiAgICAgIElQQUZvcm1TZXJ2aWNlLm5hdGlvbmFsSWRWYWxpZGF0ZSh2YWx1ZSkgfHxcclxuICAgICAgSVBBRm9ybVNlcnZpY2UuaXFhbWFJZFZhbGlkYXRlKHZhbHVlKVxyXG4gICAgKSB7XHJcbiAgICAgIGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzVmFsaWQgfHwgIXZhbHVlID8gbnVsbCA6IHsgY2hlY2tJZDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHZhbGlkSGlqcmlEYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGRhdGU6IE5nYkRhdGUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgY29uc3QgaXNWYWxpZCA9IElQQUZvcm1TZXJ2aWNlLmNoZWNrSGlqcmlEYXRlVmFsaWQoZGF0ZSk7XHJcbiAgICByZXR1cm4gaXNWYWxpZFxyXG4gICAgICA/IG51bGxcclxuICAgICAgOiB7XHJcbiAgICAgICAgICBuZ2JEYXRlOiB7XHJcbiAgICAgICAgICAgIGludmFsaWQ6XHJcbiAgICAgICAgICAgICAgZGF0ZT8ueWVhciArXHJcbiAgICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgICAoZGF0ZT8ubW9udGggPiAxMCA/IGRhdGU/Lm1vbnRoIDogJzAnICsgZGF0ZT8ubW9udGgpICtcclxuICAgICAgICAgICAgICAnLScgK1xyXG4gICAgICAgICAgICAgIChkYXRlPy5kYXkgPiAxMCA/IGRhdGU/LmRheSA6ICcwJyArIGRhdGU/LmRheSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoXHJcbiAgICBjb250cm9sOiBGb3JtQ29udHJvbCxcclxuICAgIHBhdHRlcm5FcnJvck1zZyA9ICcnLFxyXG4gICAgaXNBcmFiaWM6IGJvb2xlYW5cclxuICApOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIGNvbnRyb2w/LmVycm9ycykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgY29udHJvbD8uZXJyb3JzLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkgJiZcclxuICAgICAgICAoY29udHJvbC50b3VjaGVkIHx8IGNvbnRyb2wuZGlydHkpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckVycm9yTWVzc2FnZShcclxuICAgICAgICAgIHByb3BlcnR5TmFtZSxcclxuICAgICAgICAgIGNvbnRyb2wuZXJyb3JzW3Byb3BlcnR5TmFtZV0sXHJcbiAgICAgICAgICBwYXR0ZXJuRXJyb3JNc2csXHJcbiAgICAgICAgICBpc0FyYWJpY1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY29udmVydCBncmVnb3JpYW4gZGF0ZSB0byBoaWpyaSBkYXRlIChCYXNlZCBvbiBVbW0gYWwtUXVyYSBjYWxjdWxhdGlvbnMpLlxyXG4gICAqIEBwYXJhbSBkYXRlOiBncmVnb3JpYW4gZGF0ZVxyXG4gICAqIEBwYXJhbSBmb3JtYXQ6IGlERCA9PiBkYXk6INmh2aUsIGlNTSA9PiBtb250aDog2aDZpCwgaU1NTSA9PiBtb250aDog2LHYqNmK2Lkg2aIsXHJcbiAgICogICAgICAgICAgICAgICBpTU1NTSA9PiDYsdio2YrYuSDYp9mE2KvYp9mG2YosICBpWVkgPT4geWVhcjog2aTZoiwgaVlZWVkgPT4geWVhcjog2aHZpNmk2aIsXHJcbiAgICogICAgICAgICAgICAgICBkZCA9PiDZhiwgZGRkID0+INil2KvZhtmK2YYsIGRkZGQgPT4g2KfZhNil2KvZhtmK2YZcclxuICAgKiBAZXhhbXBsZSAnaVlZWVkvaU0vaUTZh9mAINin2YTZhdmI2KfZgdmCIFlZWVkvTS9E2YUnXHJcbiAgICogICAgICAgICAgICfZodmk2aTZoi/ZoNmkL9mh2aXZh9mAINin2YTZhdmI2KfZgdmCINmi2aDZotmgL9mh2aEv2aPZoCdcclxuICAgKi9cclxuICBjb252ZXJ0VG9IaWpyaURhdGUoXHJcbiAgICBkYXRlOiBzdHJpbmcsXHJcbiAgICBmb3JtYXQgPSAnaVlZWVktaU1NLWlERCcsXHJcbiAgICBsYW5nID0gJ2FyLVNBJ1xyXG4gICk6IHN0cmluZyB7XHJcbiAgICBtb21lbnRIaWpyaS5sb2NhbGUobGFuZyk7XHJcbiAgICByZXR1cm4gbW9tZW50SGlqcmkoZGF0ZSkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9HcmVnb3JpYW5EYXRlKFxyXG4gICAgZGF0ZTogTW9tZW50LFxyXG4gICAgZm9ybWF0ID0gJ1lZWVktTU0tREQnLFxyXG4gICAgbGFuZyA9ICdlbidcclxuICApOiBzdHJpbmcge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKGxhbmcpO1xyXG4gICAgY29uc3QgbSA9IG1vbWVudEhpanJpLmlDb252ZXJ0LnRvR3JlZ29yaWFuKFxyXG4gICAgICBkYXRlLnllYXIoKSxcclxuICAgICAgZGF0ZS5tb250aCgpLFxyXG4gICAgICBkYXRlLmRhdGUoKVxyXG4gICAgKTtcclxuICAgIHJldHVybiBtb21lbnRIaWpyaShuZXcgRGF0ZShtLmd5LCBtLmdtLCBtLmdkKSkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50SGlqcmlEYXRlKCkge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKCdlbicpO1xyXG4gICAgcmV0dXJuIG1vbWVudEhpanJpKCkuZm9ybWF0KCdpWVlZWS9pTU0vaUREJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFZhbGlkYXRvckVycm9yTWVzc2FnZShcclxuICAgIHZhbGlkYXRvck5hbWU6IHN0cmluZyxcclxuICAgIHZhbGlkYXRvclZhbHVlOiBhbnksXHJcbiAgICBwYXR0ZXJuRXJyb3JNc2c6IHN0cmluZyxcclxuICAgIGlzQXJhYmljOiBib29sZWFuXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWxpZGF0b3JOYW1lID09PSAncGF0dGVybicpIHtcclxuICAgICAgdmFsaWRhdG9yVmFsdWUgPSB0aGlzLmFkZFBhdHRlcm5Nc2codmFsaWRhdG9yVmFsdWUsIHBhdHRlcm5FcnJvck1zZyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWc6IGFueSA9IHtcclxuICAgICAgcmVxdWlyZWQ6IGlzQXJhYmljID8gJ9mH2LDYpyDYp9mE2K3ZgtmEINmF2LfZhNmI2KgnIDogJ3RoaXMgZmllbGQgcmVxdWlyZWQnLFxyXG4gICAgICBwYXR0ZXJuOiBgJHt2YWxpZGF0b3JWYWx1ZS5tZXNzYWdlfWAsXHJcbiAgICAgIEVtYWlsOlxyXG4gICAgICAgIChpc0FyYWJpYyA/ICfYrti32KMg2YHZiiDYp9mE2KjYsdmK2K8g2KfZhNin2YTZg9iq2LHZiNmG2YogJyA6ICdJbnZhbGlkIGVtYWlsICcpICtcclxuICAgICAgICAnKGV4YW1wbGVAZXhhbXBsZS5jb20pJyxcclxuICAgICAgbWF4bGVuZ3RoOiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNiq2KzYp9mI2LIg2LnYr9ivINin2YTYrdmC2YQg2KfZhNmF2LPZhdmI2K0g2KjZh9inICgke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSkg2K3YsdmBYFxyXG4gICAgICAgIDogYHRoaXMgZmllbGQgaXMgbW9yZSB0aGFuICgke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSkgbGV0dGVyYCxcclxuICAgICAgbWlubGVuZ3RoOiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNi52YTZiSDYp9mE2KPZgtmEINi52K/YryAke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSDYrdix2YFgXHJcbiAgICAgICAgOiBgdGhpcyBmaWVsZCBpcyBsZXNzIHRoYW4gKCR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9KSBsZXR0ZXJgLFxyXG4gICAgICBtaW46IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2LHZgtmFINin2YPYqNixINmF2YYg2KPZiCDZitiz2KfZiNmKICR7dmFsaWRhdG9yVmFsdWUubWlufWBcclxuICAgICAgICA6IGBudW1iZXIgbW9yZSB0aGFuIG9yIGVxdWFsICgke3ZhbGlkYXRvclZhbHVlLm1pbn0pYCxcclxuICAgICAgbWF4OiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNix2YLZhSDYp9i12LrYsSDZhdmGINij2Ygg2YrYs9in2YjZiiAke3ZhbGlkYXRvclZhbHVlLm1heH1gXHJcbiAgICAgICAgOiBgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCAoJHt2YWxpZGF0b3JWYWx1ZS5taW59KWAsXHJcbiAgICAgIG5nYkRhdGU6IHRoaXMuZ2V0TmdiRGF0ZXBpY2tlckVycm9yTXNnKHZhbGlkYXRvclZhbHVlKSxcclxuICAgICAgY2hlY2tJZDogaXNBcmFiaWNcclxuICAgICAgICA/ICfYsdmC2YUg2KfZhNmH2YjZitipINij2Ygg2KfZhNin2YLYp9mF2Kkg2LrZitixINi12K3ZititJ1xyXG4gICAgICAgIDogJ1dyb25nIElEIG9yIElxYW1hIG51bWJlcicsXHJcbiAgICAgIGxpbms6XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9in2YTYsdin2KjYtyDYutmK2LEg2LXYrdmK2K0gJyA6ICdXcm9uZyBsaW5rICcpICtcclxuICAgICAgICAnKGh0dHA6Ly9leGFtcGxlLmNvbSknLFxyXG4gICAgICBsaW5rTVA0OlxyXG4gICAgICAgIChpc0FyYWJpYyA/ICfYsdin2KjYtyBNUDQg2LrZitixINi12K3ZititICcgOiAnV3JvbmcgTVA0IGxpbmsgJykgK1xyXG4gICAgICAgICcoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUubXA0KScsXHJcbiAgICAgIG1vYmlsZU5vOlxyXG4gICAgICAgIChpc0FyYWJpYyA/ICfYrti32KMg2YHZiiDYsdmC2YUg2KfZhNis2YjYp9mEICcgOiAnV3JvbmcgbW9iaWxlIG51bWJlciAnKSArXHJcbiAgICAgICAgJygwNXh4eHh4eHh4KScsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNvbmZpZ1t2YWxpZGF0b3JOYW1lXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUGF0dGVybk1zZyh2YWxpZGF0b3JWYWx1ZTogYW55LCBwYXR0ZXJuRXJyb3JNc2c6IHN0cmluZykge1xyXG4gICAgbGV0IHBhdHRlcm4gPSB7XHJcbiAgICAgIC4uLnZhbGlkYXRvclZhbHVlLFxyXG4gICAgICBtZXNzYWdlOiBwYXR0ZXJuRXJyb3JNc2csXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHBhdHRlcm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5nYkRhdGVwaWNrZXJFcnJvck1zZyh2YWxpZGF0b3JWYWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGxldCBtc2cgPSAnJztcclxuICAgIGlmICh2YWxpZGF0b3JWYWx1ZS5tYXhEYXRlKSB7XHJcbiAgICAgIG1zZyA9IGDYp9mE2KrYp9ix2YrYriDYp9mE2YXYr9iu2YQgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5tYXhEYXRlLmFjdHVhbFxyXG4gICAgICApfVwiINin2YPYqNixINmF2YYg2KrYp9ix2YrYriDYp9mE2YrZiNmFIFwiJHt0aGlzLnBhcnNlckZvcm1hdHRlci5mb3JtYXQoXHJcbiAgICAgICAgdmFsaWRhdG9yVmFsdWUubWF4RGF0ZS5tYXhEYXRlXHJcbiAgICAgICl9XCJgO1xyXG4gICAgfSBlbHNlIGlmICh2YWxpZGF0b3JWYWx1ZS5taW5EYXRlKSB7XHJcbiAgICAgIG1zZyA9IGDYp9mE2KrYp9ix2YrYriDYp9mE2YXYr9iu2YQgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5taW5EYXRlLmFjdHVhbFxyXG4gICAgICApfVwiINmK2KzYqCDYp9mGINmK2YPZiNmGINin2YPYqNixINmF2YYg2KPZiCDZitiz2KfZiNmKINiq2KfYsdmK2K4g2KfZhNio2K/Yp9mK2KkgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5taW5EYXRlLm1pbkRhdGVcclxuICAgICAgKX1cImA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRvclZhbHVlLmludmFsaWQpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCDYutmK2LEg2LXYrdmK2K0gJHt2YWxpZGF0b3JWYWx1ZS5pbnZhbGlkfS5gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1zZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNoZWNrSGlqcmlEYXRlVmFsaWQoZGF0ZTogTmdiRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEoXHJcbiAgICAgIG1vbWVudEhpanJpLmlEYXlzSW5Nb250aChkYXRlPy55ZWFyLCBkYXRlPy5tb250aCAtIDEpIDwgZGF0ZT8uZGF5IHx8XHJcbiAgICAgIGRhdGU/LmRheSA8PSAwIHx8XHJcbiAgICAgIGRhdGU/Lm1vbnRoIDw9IDAgfHxcclxuICAgICAgZGF0ZT8ubW9udGggPiAxMiB8fFxyXG4gICAgICBkYXRlPy55ZWFyPy50b1N0cmluZygpLmxlbmd0aCAhPT0gNFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNvbnZlcnRUb0VuKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCBuZXdWYWx1ZSA9ICcnO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgY2ggPSB2YWx1ZS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICBpZiAoY2ggPj0gMTU4NCAmJiBjaCA8PSAxNjUwKSB7XHJcbiAgICAgICAgbGV0IG5ld0NoYXIgPSBjaCAtIDE1ODQ7XHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdWYWx1ZSArIFN0cmluZy5mcm9tQ2hhckNvZGUobmV3Q2hhcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdWYWx1ZSArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBuYXRpb25hbElkVmFsaWRhdGUoY2l2aWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY2l2aWxJZCkge1xyXG4gICAgICBsZXQgc3RySUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBsZXQgZGlnaXRzID0gJyc7XHJcbiAgICAgIGxldCBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCA5KSB7XHJcbiAgICAgICAgaWYgKChjb3VudGVyICsgMSkgJSAyID09IDApIHtcclxuICAgICAgICAgIGRpZ2l0cyA9IGRpZ2l0cyArIHN0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRpZ2l0cyA9XHJcbiAgICAgICAgICAgIGRpZ2l0cyArICgrc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKSAqIDIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW50U3VtID0gMDtcclxuICAgICAgbGV0IGludFN1bVRlbXAgPSAwO1xyXG4gICAgICBsZXQgc3RyU3VtO1xyXG4gICAgICBsZXQgaW50T2RkU3VtRGlnaXQ7XHJcbiAgICAgIGxldCBDaGVja0RpZ2l0O1xyXG4gICAgICBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCBkaWdpdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgaW50U3VtVGVtcCA9ICtkaWdpdHMuY2hhckF0KGNvdW50ZXIpICogMTtcclxuICAgICAgICBpbnRTdW0gKz0gaW50U3VtVGVtcDtcclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgc3RyU3VtID0gaW50U3VtLnRvU3RyaW5nKCk7XHJcbiAgICAgIGlmIChzdHJTdW0ubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IGludFN1bTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IHN0clN1bS5zdWJzdHJpbmcoc3RyU3VtLmxlbmd0aCwgc3RyU3VtLmxlbmd0aCAtIDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRPZGRTdW1EaWdpdCA9PSAwKSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9ICgxMCAtICtpbnRPZGRTdW1EaWdpdCkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgUHVibGljSUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9PVxyXG4gICAgICAgICAgUHVibGljSUQuc3Vic3RyaW5nKFB1YmxpY0lELmxlbmd0aCAtIDEsIFB1YmxpY0lELmxlbmd0aCkgJiZcclxuICAgICAgICBzdHJJRC5sZW5ndGggPT0gMTAgJiZcclxuICAgICAgICBzdHJJRC5zdWJzdHJpbmcoMCwgMSkgPT0gJzEnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgaXFhbWFJZFZhbGlkYXRlKGNpdmlsSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGNpdmlsSWQpIHtcclxuICAgICAgbGV0IHN0cklEID0gdGhpcy5jb252ZXJ0VG9FbihjaXZpbElkKTtcclxuICAgICAgbGV0IGRpZ2l0cyA9ICcnO1xyXG4gICAgICBsZXQgY291bnRlciA9IDA7XHJcbiAgICAgIHdoaWxlIChjb3VudGVyIDwgOSkge1xyXG4gICAgICAgIGlmICgoY291bnRlciArIDEpICUgMiA9PSAwKSB7XHJcbiAgICAgICAgICBkaWdpdHMgPSBkaWdpdHMgKyBzdHJJRC5zdWJzdHJpbmcoY291bnRlciwgY291bnRlciArIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkaWdpdHMgPVxyXG4gICAgICAgICAgICBkaWdpdHMgKyAoK3N0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSkgKiAyKS50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGludFN1bSA9IDA7XHJcbiAgICAgIGxldCBpbnRTdW1UZW1wID0gMDtcclxuICAgICAgbGV0IHN0clN1bTtcclxuICAgICAgbGV0IGludE9kZFN1bURpZ2l0O1xyXG4gICAgICBsZXQgQ2hlY2tEaWdpdDtcclxuICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgIHdoaWxlIChjb3VudGVyIDwgZGlnaXRzLmxlbmd0aCkge1xyXG4gICAgICAgIGludFN1bVRlbXAgPSArZGlnaXRzLmNoYXJBdChjb3VudGVyKSAqIDE7XHJcbiAgICAgICAgaW50U3VtICs9IGludFN1bVRlbXA7XHJcbiAgICAgICAgY291bnRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIHN0clN1bSA9IGludFN1bS50b1N0cmluZygpO1xyXG4gICAgICBpZiAoc3RyU3VtLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgaW50T2RkU3VtRGlnaXQgPSBpbnRTdW07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW50T2RkU3VtRGlnaXQgPSBzdHJTdW0uc3Vic3RyaW5nKHN0clN1bS5sZW5ndGgsIHN0clN1bS5sZW5ndGggLSAxKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50T2RkU3VtRGlnaXQgPT0gMCkge1xyXG4gICAgICAgIENoZWNrRGlnaXQgPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIENoZWNrRGlnaXQgPSAoMTAgLSAraW50T2RkU3VtRGlnaXQpLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IFB1YmxpY0lEID0gdGhpcy5jb252ZXJ0VG9FbihjaXZpbElkKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIENoZWNrRGlnaXQgPT1cclxuICAgICAgICAgIFB1YmxpY0lELnN1YnN0cmluZyhQdWJsaWNJRC5sZW5ndGggLSAxLCBQdWJsaWNJRC5sZW5ndGgpICYmXHJcbiAgICAgICAgc3RySUQubGVuZ3RoID09IDEwICYmXHJcbiAgICAgICAgc3RySUQuc3Vic3RyaW5nKDAsIDEpID09ICcyJ1xyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|