ng-ipa-library 1.4.11 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/esm2020/lib/core/components/loading/loading.component.mjs +4 -4
  2. package/esm2020/lib/core/interceptors/error.interceptor.mjs +4 -4
  3. package/esm2020/lib/core/interceptors/loading.interceptor.mjs +4 -4
  4. package/esm2020/lib/core/interceptors/myIPAToken.interceptor.mjs +4 -4
  5. package/esm2020/lib/core/interceptors/token.interceptor.mjs +4 -4
  6. package/esm2020/lib/core/services/auth.service.mjs +4 -4
  7. package/esm2020/lib/core/services/error.service.mjs +4 -4
  8. package/esm2020/lib/core/services/loader.service.mjs +4 -4
  9. package/esm2020/lib/core/services/token.service.mjs +4 -4
  10. package/esm2020/lib/generate-form/generate-form.component.mjs +30 -20
  11. package/esm2020/lib/ipa-form/datepicker/datepicker.component.mjs +6 -6
  12. package/esm2020/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs +7 -7
  13. package/esm2020/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.mjs +4 -4
  14. package/esm2020/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.mjs +4 -4
  15. package/esm2020/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.mjs +7 -7
  16. package/esm2020/lib/ipa-form/dropdown-input/dropdown-input.component.mjs +10 -10
  17. package/esm2020/lib/ipa-form/file-upload/file-upload.component.mjs +35 -30
  18. package/esm2020/lib/ipa-form/ipa-form.service.mjs +4 -4
  19. package/esm2020/lib/ipa-form/recaptcha/recaptcha.component.mjs +7 -7
  20. package/esm2020/lib/ipa-form/text-input/text-input.component.mjs +7 -7
  21. package/esm2020/lib/ipa-form/textarea-input/textarea-input.component.mjs +6 -6
  22. package/esm2020/lib/ng-ipa-library.module.mjs +14 -16
  23. package/esm2020/lib/pipes/hijri-date.pipe.mjs +4 -4
  24. package/esm2020/lib/pipes/pipes.module.mjs +5 -5
  25. package/esm2020/lib/services/breadcrumbs.service.mjs +4 -4
  26. package/esm2020/lib/services/common.service.mjs +4 -4
  27. package/esm2020/lib/share-button/share-button.component.mjs +5 -5
  28. package/esm2020/lib/share-button/share-button.module.mjs +8 -10
  29. package/fesm2015/ng-ipa-library.mjs +160 -151
  30. package/fesm2015/ng-ipa-library.mjs.map +1 -1
  31. package/fesm2020/ng-ipa-library.mjs +160 -151
  32. package/fesm2020/ng-ipa-library.mjs.map +1 -1
  33. package/{ng-ipa-library.d.ts → index.d.ts} +0 -0
  34. package/lib/core/components/loading/loading.component.d.ts +1 -1
  35. package/lib/generate-form/generate-form.component.d.ts +4 -4
  36. package/lib/ipa-form/datepicker/datepicker.component.d.ts +3 -3
  37. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +1 -1
  38. package/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +1 -1
  39. package/lib/ipa-form/dropdown-input/dropdown-input.component.d.ts +3 -3
  40. package/lib/ipa-form/file-upload/file-upload.component.d.ts +4 -1
  41. package/lib/ipa-form/ipa-form.service.d.ts +2 -2
  42. package/lib/ipa-form/recaptcha/recaptcha.component.d.ts +3 -3
  43. package/lib/ipa-form/text-input/text-input.component.d.ts +3 -3
  44. package/lib/ipa-form/textarea-input/textarea-input.component.d.ts +3 -3
  45. package/lib/pipes/hijri-date.pipe.d.ts +1 -1
  46. package/lib/share-button/share-button.component.d.ts +1 -1
  47. package/package.json +11 -11
  48. package/src/lib/assets/ngIPAStyle.scss +1 -1
@@ -1,14 +1,15 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
2
+ import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
+ import { IPAFormService } from '../ipa-form/ipa-form.service';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "../ipa-form/ipa-form.service";
5
- import * as i2 from "../ipa-form/textarea-input/textarea-input.component";
6
- import * as i3 from "../ipa-form/dropdown-input/dropdown-input.component";
7
- import * as i4 from "../ipa-form/file-upload/file-upload.component";
8
- import * as i5 from "../ipa-form/recaptcha/recaptcha.component";
9
- import * as i6 from "../ipa-form/text-input/text-input.component";
10
- import * as i7 from "@angular/forms";
11
- import * as i8 from "@angular/common";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "../ipa-form/text-input/text-input.component";
9
+ import * as i5 from "../ipa-form/textarea-input/textarea-input.component";
10
+ import * as i6 from "../ipa-form/dropdown-input/dropdown-input.component";
11
+ import * as i7 from "../ipa-form/file-upload/file-upload.component";
12
+ import * as i8 from "../ipa-form/recaptcha/recaptcha.component";
12
13
  export class GenerateFormComponent {
13
14
  constructor(validationService) {
14
15
  this.validationService = validationService;
@@ -68,7 +69,7 @@ export class GenerateFormComponent {
68
69
  this.addCheckboxControl(column);
69
70
  }
70
71
  else {
71
- this.generateForm.addControl(column.formControlName, new FormControl(column.type === 'file' && column.multipleFile > 1 ? [] : null, [
72
+ this.generateForm.addControl(column.formControlName, new UntypedFormControl(column.type === 'file' && column.multipleFile > 1 ? [] : null, [
72
73
  column.required ? Validators.required : Validators.nullValidator,
73
74
  column.validationPattern
74
75
  ? Validators.pattern(column.validationPattern)
@@ -80,19 +81,28 @@ export class GenerateFormComponent {
80
81
  column.type === 'number'
81
82
  ? Validators.min(1)
82
83
  : Validators.nullValidator,
84
+ column.formControlName === 'email'
85
+ ? IPAFormService.email
86
+ : Validators.nullValidator,
87
+ column.formControlName === 'mobileNo'
88
+ ? IPAFormService.mobileNo
89
+ : Validators.nullValidator,
90
+ column.formControlName === 'userId'
91
+ ? IPAFormService.checkID
92
+ : Validators.nullValidator,
83
93
  ]));
84
94
  }
85
95
  });
86
96
  }
87
97
  addCheckboxControl(column) {
88
- let checkboxGroup = new FormArray(column.data.map((item) => {
89
- return new FormGroup({
90
- [column.valueField]: new FormControl(item[column.valueField]),
91
- [column.textField]: new FormControl(item[column.textField]),
92
- checkbox: new FormControl(false),
98
+ let checkboxGroup = new UntypedFormArray(column.data.map((item) => {
99
+ return new UntypedFormGroup({
100
+ [column.valueField]: new UntypedFormControl(item[column.valueField]),
101
+ [column.textField]: new UntypedFormControl(item[column.textField]),
102
+ checkbox: new UntypedFormControl(false),
93
103
  });
94
104
  }));
95
- this.generateForm.addControl(column.formControlName, new FormControl(null, column.required ? Validators.required : Validators.nullValidator));
105
+ this.generateForm.addControl(column.formControlName, new UntypedFormControl(null, column.required ? Validators.required : Validators.nullValidator));
96
106
  this.generateForm.addControl('items' + column.formControlName, checkboxGroup);
97
107
  checkboxGroup.valueChanges.subscribe((value) => {
98
108
  let selectedItems = this.getCheckboxSelectedValues(value);
@@ -110,11 +120,11 @@ export class GenerateFormComponent {
110
120
  return selectedItems.length > 0 ? selectedItems : null;
111
121
  }
112
122
  }
113
- GenerateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GenerateFormComponent, deps: [{ token: i1.IPAFormService }], target: i0.ɵɵFactoryTarget.Component });
114
- GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: i2.TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { type: i3.DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { type: i4.FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: i5.RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }, { type: i6.TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i7.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i7.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: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GenerateFormComponent, decorators: [{
123
+ GenerateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: GenerateFormComponent, deps: [{ token: i1.IPAFormService }], target: i0.ɵɵFactoryTarget.Component });
124
+ GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: i5.TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { kind: "component", type: i6.DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { kind: "component", type: i7.FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { kind: "component", type: i8.RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }] });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: GenerateFormComponent, decorators: [{
116
126
  type: Component,
117
- args: [{ selector: 'ipa-generate-form', template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""] }]
127
+ args: [{ selector: 'ipa-generate-form', template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>" }]
118
128
  }], ctorParameters: function () { return [{ type: i1.IPAFormService }]; }, propDecorators: { generateForm: [{
119
129
  type: Input
120
130
  }], form: [{
@@ -140,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
140
150
  }], fileDeleted: [{
141
151
  type: Output
142
152
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBb0JoQyxZQUFvQixpQkFBaUM7UUFBakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFnQjtRQWpCNUMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFJcEIsa0JBQWEsR0FBeUIsUUFBUSxDQUFDO1FBQy9DLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQXNCLE9BQU8sQ0FBQztRQUMzQyxVQUFLLEdBQXFCLE9BQU8sQ0FBQztRQUNsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUVoQyxzQkFBc0I7UUFDWixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBSWEsQ0FBQztJQUV6RCxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFl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U0FBUzsrQkFDRSxtQkFBbUI7cUdBS3BCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS9pcGEtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29sdW1uLCBHZW5lcmF0ZUZvcm0gfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVGb3JtLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWdlbmVyYXRlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmF0ZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmF0ZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGdlbmVyYXRlRm9ybSE6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBmb3JtITogR2VuZXJhdGVGb3JtO1xyXG4gIEBJbnB1dCgpIGlzQXJhYmljRm9ybSA9IHRydWU7XHJcblxyXG4gIC8vIHJlY2FwdGNoYSBpbnB1dHNcclxuICBASW5wdXQoKSBzaXRlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlY2FwdGNoYVNpemU6ICdjb21wYWN0JyB8ICdub3JtYWwnID0gJ25vcm1hbCc7XHJcbiAgQElucHV0KCkgbGFuZzogJ2FyJyB8ICdlbicgPSAnYXInO1xyXG4gIEBJbnB1dCgpIHJlY2FwdGNoYVR5cGU6ICdpbWFnZScgfCAnYXVkaW8nID0gJ2ltYWdlJztcclxuICBASW5wdXQoKSB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCc7XHJcbiAgQElucHV0KCkgdXNlR2xvYmFsRG9tYWluID0gdHJ1ZTtcclxuXHJcbiAgLy8gZmlsZSB1cGxvYWQgb3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBzdWNjZXNzVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZpbGVEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IElQQUZvcm1TZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRGF0YVZhbHVlRm9yRW5nRm9ybSgpO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtQ29udHJvbHMoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRm9ybS5nZXQoJ2l0ZW1zJyArIGZvcm1Db250cm9sTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKGZvcm1Db250cm9sTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW1xyXG4gICAgICBmb3JtQ29udHJvbE5hbWVcclxuICAgIF0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIGZvcm1Db250cm9sLFxyXG4gICAgICAnJyxcclxuICAgICAgdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvck1zZztcclxuICB9XHJcblxyXG4gIFN1Y2Nlc3NVcGxvYWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zdWNjZXNzVXBsb2FkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgRmlsZUFkZGVkKGZpbGU6IGFueSwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShmaWxlKTtcclxuICAgIHRoaXMuZmlsZUFkZGVkLmVtaXQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBGaWxlRGVsZXRlZChldmVudDogYW55LCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlRGVsZXRlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlRGF0YVZhbHVlRm9yRW5nRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybS5jb2x1bW5zID0gdGhpcy5mb3JtLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5jb2x1bW4sXHJcbiAgICAgICAgZGF0YTogY29sdW1uLmRhdGE/Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtW2NvbHVtbi50ZXh0RmllbGQhXTtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIFtjb2x1bW4udGV4dEZpZWxkIV06IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgICAgICAgPyB2YWx1ZS5zcGxpdCgnLCcpWzBdXHJcbiAgICAgICAgICAgICAgOiB2YWx1ZS5zcGxpdCgnLCcpWzFdLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgIHRoaXMuYWRkQ2hlY2tib3hDb250cm9sKGNvbHVtbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAgIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUsXHJcbiAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXHJcbiAgICAgICAgICAgIGNvbHVtbi50eXBlID09PSAnZmlsZScgJiYgY29sdW1uLm11bHRpcGxlRmlsZSEgPiAxID8gW10gOiBudWxsLFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgY29sdW1uLnJlcXVpcmVkID8gVmFsaWRhdG9ycy5yZXF1aXJlZCA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBjb2x1bW4udmFsaWRhdGlvblBhdHRlcm5cclxuICAgICAgICAgICAgICAgID8gVmFsaWRhdG9ycy5wYXR0ZXJuKGNvbHVtbi52YWxpZGF0aW9uUGF0dGVybilcclxuICAgICAgICAgICAgICAgIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgICAgIFsnc2VsZWN0JywgJ3JhZGlvJywgJ2ZpbGUnLCAncmVjYXB0Y2hhJ10uaW5kZXhPZihjb2x1bW4udHlwZSkgPD1cclxuICAgICAgICAgICAgICAtMVxyXG4gICAgICAgICAgICAgICAgPyBWYWxpZGF0b3JzLm1heExlbmd0aChjb2x1bW4uc2l6ZSEpXHJcbiAgICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBjb2x1bW4udHlwZSA9PT0gJ251bWJlcidcclxuICAgICAgICAgICAgICAgID8gVmFsaWRhdG9ycy5taW4oMSlcclxuICAgICAgICAgICAgICAgIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENoZWNrYm94Q29udHJvbChjb2x1bW46IENvbHVtbikge1xyXG4gICAgbGV0IGNoZWNrYm94R3JvdXAgPSBuZXcgRm9ybUFycmF5KFxyXG4gICAgICBjb2x1bW4uZGF0YSEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICAgICAgW2NvbHVtbi52YWx1ZUZpZWxkIV06IG5ldyBGb3JtQ29udHJvbChpdGVtW2NvbHVtbi52YWx1ZUZpZWxkIV0pLFxyXG4gICAgICAgICAgW2NvbHVtbi50ZXh0RmllbGQhXTogbmV3IEZvcm1Db250cm9sKGl0ZW1bY29sdW1uLnRleHRGaWVsZCFdKSxcclxuICAgICAgICAgIGNoZWNrYm94OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgICBuZXcgRm9ybUNvbnRyb2woXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBjb2x1bW4ucmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICAnaXRlbXMnICsgY29sdW1uLmZvcm1Db250cm9sTmFtZSxcclxuICAgICAgY2hlY2tib3hHcm91cFxyXG4gICAgKTtcclxuICAgIGNoZWNrYm94R3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueVtdKSA9PiB7XHJcbiAgICAgIGxldCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5nZXRDaGVja2JveFNlbGVjdGVkVmFsdWVzKHZhbHVlKTtcclxuICAgICAgaWYgKHNlbGVjdGVkSXRlbXMpIHtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKFxyXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5tYXAoKHgpID0+IHhbY29sdW1uLnRleHRGaWVsZCFdKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbY29sdW1uLmZvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShudWxsKTtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDaGVja2JveFNlbGVjdGVkVmFsdWVzKGl0ZW1zOiBhbnlbXSk6IGFueVtdIHwgbnVsbCB7XHJcbiAgICBsZXQgc2VsZWN0ZWRJdGVtcyA9IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5jaGVja2JveCk7XHJcbiAgICByZXR1cm4gc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwID8gc2VsZWN0ZWRJdGVtcyA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZ2VuZXJhdGVGb3JtXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybS5jb2x1bW5zXCI+XHJcbiAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIj5cclxuICAgICAgICAgICAgPCEtLSBURVhUQVJFQSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRBcmVhJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGlwYS10ZXh0YXJlYS1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbFwiIFtyZXF1aXJlZF09XCJjb2x1bW4ucmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwYXR0ZXJuRXJyb3JNc2ddPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4ucGF0dGVybkFyRXJyb3JNc2chIDogY29sdW1uLnBhdHRlcm5FbkVycm9yTXNnIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiY29sdW1uLmlucHV0Q2xhc3NlcyFcIiBbY29udGFpbmVyQ2xhc3Nlc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3NlcyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0FyYWJpY0Zvcm1dPVwiaXNBcmFiaWNGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L2lwYS10ZXh0YXJlYS1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIERST1AgRE9XTiBMSVNUIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiPlxyXG4gICAgICAgICAgICAgICAgPGlwYS1kcm9wZG93bi1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbFwiIFtpdGVtc109XCJjb2x1bW4uZGF0YSFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cImNvbHVtbi52YWx1ZUZpZWxkIVwiIFt0ZXh0RmllbGRdPVwiY29sdW1uLnRleHRGaWVsZCFcIiBbcmVxdWlyZWRdPVwiY29sdW1uLnJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2VhcmNoYWJsZV09XCJjb2x1bW4uc2VhcmNoYWJsZSFcIiBbbm90Rm91bmRUZXh0XT1cImNvbHVtbi5ub3RGb3VuZFRleHQhXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJjb2x1bW4uaW5wdXRDbGFzc2VzIVwiIFtjb250YWluZXJDbGFzc2VzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzQXJhYmljRm9ybV09XCJpc0FyYWJpY0Zvcm1cIiBbZnJvbUdlbmVyYXRlRm9ybV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2lwYS1kcm9wZG93bi1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIENIRUNLQk9YIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWx9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtQXJyYXlOYW1lXT1cIidpdGVtcycrIGNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGdldEZvcm1Db250cm9scyhjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHt7Y29sdW1uLmlucHV0Q2xhc3Nlc319XCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWUrY29udHJvbC52YWx1ZVtjb2x1bW4udmFsdWVGaWVsZCFdXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lK2NvbnRyb2wudmFsdWVbY29sdW1uLnZhbHVlRmllbGQhXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb250cm9sLnZhbHVlW2NvbHVtbi50ZXh0RmllbGQhXX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRFcnJvck1lc3NhZ2UoY29sdW1uLmZvcm1Db250cm9sTmFtZSkgIT09IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2Vycm9yTXNnfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUkFESU8gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIiBbY2xhc3NdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57e2lzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sdW1uLmRhdGE7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayB7e2NvbHVtbi5pbnB1dENsYXNzZXN9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWUraXRlbVtjb2x1bW4udmFsdWVGaWVsZCFdXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiIFt2YWx1ZV09XCJpdGVtW2NvbHVtbi50ZXh0RmllbGQhXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2Zvcl09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lK2l0ZW1bY29sdW1uLnZhbHVlRmllbGQhXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtW2NvbHVtbi50ZXh0RmllbGQhXX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRFcnJvck1lc3NhZ2UoY29sdW1uLmZvcm1Db250cm9sTmFtZSkgIT09IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2Vycm9yTXNnfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gRklMRSBVUExPQUQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidmaWxlJ1wiIFtjbGFzc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGlwYS1maWxlLXVwbG9hZCBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiIFtsYWJlbF09XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthY2NlcHRlZEZpbGVzXT1cImNvbHVtbi5hY2NlcHRlZEZpbGVzIVwiIFttdWx0aXBsZV09XCJjb2x1bW4ubXVsdGlwbGVGaWxlIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heEZpbGVTaXplXT1cImNvbHVtbi5zaXplIVwiIFttZXRob2RdPVwiY29sdW1uLmFwaVVSbE1ldGhvZCFcIiBbYXV0b1VwbG9hZF09XCJjb2x1bW4uYXV0b1VwbG9hZEZpbGUhXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBpVXJsXT1cImNvbHVtbi5hcGlVcmw/PyAnYXBpVXJsJyBcIiBbYXV0aG9yaXphdGlvbl09XCJjb2x1bW4uYXV0aG9yaXphdGlvbiFcIiBuZ0RlZmF1bHRDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCIgKHN1Y2Nlc3NVcGxvYWQpPVwiU3VjY2Vzc1VwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZmlsZUFkZGVkKT1cIkZpbGVBZGRlZCgkZXZlbnQsIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZmlsZURlbGV0ZWQpPVwiRmlsZURlbGV0ZWQoJGV2ZW50LCBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtZmlsZS11cGxvYWQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSByZWNhcHRjaGEgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidyZWNhcHRjaGEnXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8aXBhLXJlY2FwdGNoYSBbcmVjYXB0Y2hhU2l6ZV09XCJyZWNhcHRjaGFTaXplXCIgW2xhbmddPVwiaXNBcmFiaWNGb3JtPyAnYXInOidlbidcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWNhcHRjaGFUeXBlXT1cInJlY2FwdGNoYVR5cGVcIiBbdXNlR2xvYmFsRG9tYWluXT1cInVzZUdsb2JhbERvbWFpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lfX1cIj5cclxuICAgICAgICAgICAgICAgIDwvaXBhLXJlY2FwdGNoYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIERFRkFVTFQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgIDxpcGEtdGV4dC1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29sdW1uLnR5cGVcIiBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiY29sdW1uLnJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGF0dGVybkVycm9yTXNnXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLnBhdHRlcm5BckVycm9yTXNnISA6IGNvbHVtbi5wYXR0ZXJuRW5FcnJvck1zZyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImNvbHVtbi5pbnB1dENsYXNzZXMhXCIgW2NvbnRhaW5lckNsYXNzZXNdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXMhXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtdGV4dC1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9mb3JtPiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFROUQsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFBb0IsaUJBQWlDO1FBQWpDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0I7UUFqQjVDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBSXBCLGtCQUFhLEdBQXlCLFFBQVEsQ0FBQztRQUMvQyxTQUFJLEdBQWdCLElBQUksQ0FBQztRQUN6QixrQkFBYSxHQUFzQixPQUFPLENBQUM7UUFDM0MsVUFBSyxHQUFxQixPQUFPLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFaEMsc0JBQXNCO1FBQ1osa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUlhLENBQUM7SUFFekQsUUFBUTtRQUNOLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FB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QVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDcEU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxLQUFZO1FBQzVDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRCxPQUFPLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDOzttSEF0SlUscUJBQXFCO3VHQUFyQixxQkFBcUIsc1lDVmxDLHdqTUE4Rk87NEZEcEZNLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7cUdBS3BCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS9pcGEtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29sdW1uLCBHZW5lcmF0ZUZvcm0gfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVGb3JtLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWdlbmVyYXRlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmF0ZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmF0ZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGdlbmVyYXRlRm9ybSE6IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybSE6IEdlbmVyYXRlRm9ybTtcclxuICBASW5wdXQoKSBpc0FyYWJpY0Zvcm0gPSB0cnVlO1xyXG5cclxuICAvLyByZWNhcHRjaGEgaW5wdXRzXHJcbiAgQElucHV0KCkgc2l0ZUtleSE6IHN0cmluZztcclxuICBASW5wdXQoKSByZWNhcHRjaGFTaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG4gIEBJbnB1dCgpIGxhbmc6ICdhcicgfCAnZW4nID0gJ2FyJztcclxuICBASW5wdXQoKSByZWNhcHRjaGFUeXBlOiAnaW1hZ2UnIHwgJ2F1ZGlvJyA9ICdpbWFnZSc7XHJcbiAgQElucHV0KCkgdGhlbWU6ICdsaWdodCcgfCAnZGFyaycgPSAnbGlnaHQnO1xyXG4gIEBJbnB1dCgpIHVzZUdsb2JhbERvbWFpbiA9IHRydWU7XHJcblxyXG4gIC8vIGZpbGUgdXBsb2FkIG91dHB1dHNcclxuICBAT3V0cHV0KCkgc3VjY2Vzc1VwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZXJyb3JNc2chOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBJUEFGb3JtU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZURhdGFWYWx1ZUZvckVuZ0Zvcm0oKTtcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUNvbnRyb2xzKGZvcm1Db250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZUZvcm0uZ2V0KCdpdGVtcycgKyBmb3JtQ29udHJvbE5hbWUpIGFzIFVudHlwZWRGb3JtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZVxyXG4gICAgXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIGZvcm1Db250cm9sLFxyXG4gICAgICAnJyxcclxuICAgICAgdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvck1zZztcclxuICB9XHJcblxyXG4gIFN1Y2Nlc3NVcGxvYWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zdWNjZXNzVXBsb2FkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgRmlsZUFkZGVkKGZpbGU6IGFueSwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShmaWxlKTtcclxuICAgIHRoaXMuZmlsZUFkZGVkLmVtaXQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBGaWxlRGVsZXRlZChldmVudDogYW55LCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlRGVsZXRlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlRGF0YVZhbHVlRm9yRW5nRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybS5jb2x1bW5zID0gdGhpcy5mb3JtLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5jb2x1bW4sXHJcbiAgICAgICAgZGF0YTogY29sdW1uLmRhdGE/Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtW2NvbHVtbi50ZXh0RmllbGQhXTtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIFtjb2x1bW4udGV4dEZpZWxkIV06IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgICAgICAgPyB2YWx1ZS5zcGxpdCgnLCcpWzBdXHJcbiAgICAgICAgICAgICAgOiB2YWx1ZS5zcGxpdCgnLCcpWzFdLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgIHRoaXMuYWRkQ2hlY2tib3hDb250cm9sKGNvbHVtbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAgIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUsXHJcbiAgICAgICAgICBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgICAgICBjb2x1bW4udHlwZSA9PT0gJ2ZpbGUnICYmIGNvbHVtbi5tdWx0aXBsZUZpbGUhID4gMSA/IFtdIDogbnVsbCxcclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgIGNvbHVtbi5yZXF1aXJlZCA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgICAgY29sdW1uLnZhbGlkYXRpb25QYXR0ZXJuXHJcbiAgICAgICAgICAgICAgICA/IFZhbGlkYXRvcnMucGF0dGVybihjb2x1bW4udmFsaWRhdGlvblBhdHRlcm4pXHJcbiAgICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBbJ3NlbGVjdCcsICdyYWRpbycsICdmaWxlJywgJ3JlY2FwdGNoYSddLmluZGV4T2YoY29sdW1uLnR5cGUpIDw9XHJcbiAgICAgICAgICAgICAgLTFcclxuICAgICAgICAgICAgICAgID8gVmFsaWRhdG9ycy5tYXhMZW5ndGgoY29sdW1uLnNpemUhKVxyXG4gICAgICAgICAgICAgICAgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXHJcbiAgICAgICAgICAgICAgICA/IFZhbGlkYXRvcnMubWluKDEpXHJcbiAgICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lID09PSAnZW1haWwnXHJcbiAgICAgICAgICAgICAgICA/IElQQUZvcm1TZXJ2aWNlLmVtYWlsXHJcbiAgICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lID09PSAnbW9iaWxlTm8nXHJcbiAgICAgICAgICAgICAgICA/IElQQUZvcm1TZXJ2aWNlLm1vYmlsZU5vXHJcbiAgICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lID09PSAndXNlcklkJ1xyXG4gICAgICAgICAgICAgICAgPyBJUEFGb3JtU2VydmljZS5jaGVja0lEXHJcbiAgICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRDaGVja2JveENvbnRyb2woY29sdW1uOiBDb2x1bW4pIHtcclxuICAgIGxldCBjaGVja2JveEdyb3VwID0gbmV3IFVudHlwZWRGb3JtQXJyYXkoXHJcbiAgICAgIGNvbHVtbi5kYXRhIS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xyXG4gICAgICAgICAgW2NvbHVtbi52YWx1ZUZpZWxkIV06IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaXRlbVtjb2x1bW4udmFsdWVGaWVsZCFdKSxcclxuICAgICAgICAgIFtjb2x1bW4udGV4dEZpZWxkIV06IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaXRlbVtjb2x1bW4udGV4dEZpZWxkIV0pLFxyXG4gICAgICAgICAgY2hlY2tib3g6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgICBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgY29sdW1uLnJlcXVpcmVkID8gVmFsaWRhdG9ycy5yZXF1aXJlZCA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvclxyXG4gICAgICApXHJcbiAgICApO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgJ2l0ZW1zJyArIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUsXHJcbiAgICAgIGNoZWNrYm94R3JvdXBcclxuICAgICk7XHJcbiAgICBjaGVja2JveEdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBhbnlbXSkgPT4ge1xyXG4gICAgICBsZXQgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuZ2V0Q2hlY2tib3hTZWxlY3RlZFZhbHVlcyh2YWx1ZSk7XHJcbiAgICAgIGlmIChzZWxlY3RlZEl0ZW1zKSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbY29sdW1uLmZvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShcclxuICAgICAgICAgIHNlbGVjdGVkSXRlbXMubWFwKCh4KSA9PiB4W2NvbHVtbi50ZXh0RmllbGQhXSlcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2NvbHVtbi5mb3JtQ29udHJvbE5hbWVdLnBhdGNoVmFsdWUobnVsbCk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbY29sdW1uLmZvcm1Db250cm9sTmFtZV0ubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2hlY2tib3hTZWxlY3RlZFZhbHVlcyhpdGVtczogYW55W10pOiBhbnlbXSB8IG51bGwge1xyXG4gICAgbGV0IHNlbGVjdGVkSXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2hlY2tib3gpO1xyXG4gICAgcmV0dXJuIHNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCA/IHNlbGVjdGVkSXRlbXMgOiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImdlbmVyYXRlRm9ybVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGZvcm0uY29sdW1uc1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICAgICAgICAgIDwhLS0gVEVYVEFSRUEgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0QXJlYSdcIj5cclxuICAgICAgICAgICAgICAgIDxpcGEtdGV4dGFyZWEtaW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCIgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWxcIiBbcmVxdWlyZWRdPVwiY29sdW1uLnJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGF0dGVybkVycm9yTXNnXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLnBhdHRlcm5BckVycm9yTXNnISA6IGNvbHVtbi5wYXR0ZXJuRW5FcnJvck1zZyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImNvbHVtbi5pbnB1dENsYXNzZXMhXCIgW2NvbnRhaW5lckNsYXNzZXNdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXMhXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtdGV4dGFyZWEtaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBEUk9QIERPV04gTElTVCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIj5cclxuICAgICAgICAgICAgICAgIDxpcGEtZHJvcGRvd24taW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCIgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWxcIiBbaXRlbXNdPVwiY29sdW1uLmRhdGEhXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJjb2x1bW4udmFsdWVGaWVsZCFcIiBbdGV4dEZpZWxkXT1cImNvbHVtbi50ZXh0RmllbGQhXCIgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NlYXJjaGFibGVdPVwiY29sdW1uLnNlYXJjaGFibGUhXCIgW25vdEZvdW5kVGV4dF09XCJjb2x1bW4ubm90Rm91bmRUZXh0IVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiY29sdW1uLmlucHV0Q2xhc3NlcyFcIiBbY29udGFpbmVyQ2xhc3Nlc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3NlcyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0FyYWJpY0Zvcm1dPVwiaXNBcmFiaWNGb3JtXCIgW2Zyb21HZW5lcmF0ZUZvcm1dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtZHJvcGRvd24taW5wdXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBDSEVDS0JPWCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiIFtjbGFzc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7aXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUFycmF5TmFtZV09XCInaXRlbXMnKyBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBnZXRGb3JtQ29udHJvbHMoY29sdW1uLmZvcm1Db250cm9sTmFtZSkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayB7e2NvbHVtbi5pbnB1dENsYXNzZXN9fVwiIFtmb3JtR3JvdXBOYW1lXT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtpZF09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lK2NvbnRyb2wudmFsdWVbY29sdW1uLnZhbHVlRmllbGQhXVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZStjb250cm9sLnZhbHVlW2NvbHVtbi52YWx1ZUZpZWxkIV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29udHJvbC52YWx1ZVtjb2x1bW4udGV4dEZpZWxkIV19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiIHN0eWxlPVwiZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0RXJyb3JNZXNzYWdlKGNvbHVtbi5mb3JtQ29udHJvbE5hbWUpICE9PSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFJBRElPIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWx9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbHVtbi5kYXRhOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sge3tjb2x1bW4uaW5wdXRDbGFzc2VzfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtpZF09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lK2l0ZW1bY29sdW1uLnZhbHVlRmllbGQhXVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbdmFsdWVdPVwiaXRlbVtjb2x1bW4udGV4dEZpZWxkIV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZStpdGVtW2NvbHVtbi52YWx1ZUZpZWxkIV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbVtjb2x1bW4udGV4dEZpZWxkIV19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiIHN0eWxlPVwiZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0RXJyb3JNZXNzYWdlKGNvbHVtbi5mb3JtQ29udHJvbE5hbWUpICE9PSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEZJTEUgVVBMT0FEIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZmlsZSdcIiBbY2xhc3NdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXNcIj5cclxuICAgICAgICAgICAgICAgIDxpcGEtZmlsZS11cGxvYWQgW2lzQXJhYmljRm9ybV09XCJpc0FyYWJpY0Zvcm1cIiBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbYWNjZXB0ZWRGaWxlc109XCJjb2x1bW4uYWNjZXB0ZWRGaWxlcyFcIiBbbXVsdGlwbGVdPVwiY29sdW1uLm11bHRpcGxlRmlsZSFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhGaWxlU2l6ZV09XCJjb2x1bW4uc2l6ZSFcIiBbbWV0aG9kXT1cImNvbHVtbi5hcGlVUmxNZXRob2QhXCIgW2F1dG9VcGxvYWRdPVwiY29sdW1uLmF1dG9VcGxvYWRGaWxlIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FwaVVybF09XCJjb2x1bW4uYXBpVXJsPz8gJ2FwaVVybCcgXCIgW2F1dGhvcml6YXRpb25dPVwiY29sdW1uLmF1dGhvcml6YXRpb24hXCIgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiIChzdWNjZXNzVXBsb2FkKT1cIlN1Y2Nlc3NVcGxvYWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGZpbGVBZGRlZCk9XCJGaWxlQWRkZWQoJGV2ZW50LCBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGZpbGVEZWxldGVkKT1cIkZpbGVEZWxldGVkKCRldmVudCwgY29sdW1uLmZvcm1Db250cm9sTmFtZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvaXBhLWZpbGUtdXBsb2FkPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gcmVjYXB0Y2hhIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncmVjYXB0Y2hhJ1wiIFtjbGFzc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGlwYS1yZWNhcHRjaGEgW3JlY2FwdGNoYVNpemVdPVwicmVjYXB0Y2hhU2l6ZVwiIFtsYW5nXT1cImlzQXJhYmljRm9ybT8gJ2FyJzonZW4nXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVjYXB0Y2hhVHlwZV09XCJyZWNhcHRjaGFUeXBlXCIgW3VzZUdsb2JhbERvbWFpbl09XCJ1c2VHbG9iYWxEb21haW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInt7Y29sdW1uLmZvcm1Db250cm9sTmFtZX19XCI+XHJcbiAgICAgICAgICAgICAgICA8L2lwYS1yZWNhcHRjaGE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBERUZBVUxUIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgICA8aXBhLXRleHQtaW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCIgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbHVtbi50eXBlXCIgW2xhYmVsXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhdHRlcm5FcnJvck1zZ109XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5wYXR0ZXJuQXJFcnJvck1zZyEgOiBjb2x1bW4ucGF0dGVybkVuRXJyb3JNc2chXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJjb2x1bW4uaW5wdXRDbGFzc2VzIVwiIFtjb250YWluZXJDbGFzc2VzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzQXJhYmljRm9ybV09XCJpc0FyYWJpY0Zvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvaXBhLXRleHQtaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZm9ybT4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Component, Input, Self, ViewChild, } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
2
+ import { UntypedFormControl } from '@angular/forms';
3
3
  import { IPAFormService } from '../ipa-form.service';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../ipa-form.service";
@@ -17,7 +17,7 @@ export class DatepickerComponent {
17
17
  this.required = false;
18
18
  this.isArabicForm = true;
19
19
  this.today = this.calendar.getToday();
20
- this.formControl = new FormControl('');
20
+ this.formControl = new UntypedFormControl('');
21
21
  this.controlDir.valueAccessor = this;
22
22
  config.container = null;
23
23
  config.placement = 'bottom-center';
@@ -56,9 +56,9 @@ export class DatepickerComponent {
56
56
  return this.errorMsg;
57
57
  }
58
58
  }
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"] }] });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DatepickerComponent, decorators: [{
59
+ DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", 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: "14.0.0", version: "14.2.12", 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"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", 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]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }] });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DatepickerComponent, decorators: [{
62
62
  type: Component,
63
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"] }]
64
64
  }], ctorParameters: function () { return [{ type: i1.IPAFormService }, { type: i2.NgbCalendar }, { type: i3.NgControl, decorators: [{
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
85
85
  }], isArabicForm: [{
86
86
  type: Input
87
87
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQVF4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQU9yRCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixZQUNVLGNBQThCLEVBQzlCLFFBQXFCLEVBQ2QsVUFBcUIsRUFDcEMsTUFBZ0MsRUFDeEIsRUFBcUI7UUFKckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBRTVCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBbEJ0QixVQUFLLEdBQUcsWUFBWSxDQUFDO1FBQ3JCLG9CQUFlLEdBQUcsaUJBQWlCLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUtqQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUU3QixVQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQVU3QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDckMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7SUFDckMsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRSxPQUFPLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBc0IsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVUsSUFBUyxDQUFDO0lBRTdCLFNBQVMsS0FBVSxDQUFDO0lBQ3BCLFVBQVUsQ0FBQyxHQUFRLElBQVMsQ0FBQztJQUU3QixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUNqRCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O2dIQXRFVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix1WEN4QmhDLCtuREFxQk07MkZER08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs7MEJBdUJ2QixJQUFJO21IQWxCUyxVQUFVO3NCQUF6QixTQUFTO3VCQUFDLEdBQUc7Z0JBQ0wsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBOZ2JDYWxlbmRhcixcclxuICBOZ2JEYXRlLFxyXG4gIE5nYkRhdGVTdHJ1Y3QsXHJcbiAgTmdiSW5wdXREYXRlcGlja2VyLFxyXG4gIE5nYklucHV0RGF0ZXBpY2tlckNvbmZpZyxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IElQQUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vaXBhLWZvcm0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZCgnZCcpIGRhdGVwaWNrZXIhOiBOZ2JJbnB1dERhdGVwaWNrZXI7XHJcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWwgPSAnZGF0ZXBpY2tlcic7XHJcbiAgQElucHV0KCkgcGF0dGVybkVycm9yTXNnID0gJ2ludmFsaWQgcGF0dGVybic7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXhEYXRlITogTmdiRGF0ZVN0cnVjdDtcclxuICBASW5wdXQoKSBtaW5EYXRlITogTmdiRGF0ZVN0cnVjdDtcclxuICBASW5wdXQoKSBjbGFzc2VzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBpc0hpanJpRGF0ZXBpY2tlciE6IGJvb2xlYW47XHJcbiAgdG9kYXkgPSB0aGlzLmNhbGVuZGFyLmdldFRvZGF5KCk7XHJcbiAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpcGFGb3JtU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhbGVuZGFyOiBOZ2JDYWxlbmRhcixcclxuICAgIEBTZWxmKCkgcHVibGljIGNvbnRyb2xEaXI6IE5nQ29udHJvbCxcclxuICAgIGNvbmZpZzogTmdiSW5wdXREYXRlcGlja2VyQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIGNvbmZpZy5jb250YWluZXIgPSBudWxsO1xyXG4gICAgY29uZmlnLnBsYWNlbWVudCA9ICdib3R0b20tY2VudGVyJztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sRGlyLmNvbnRyb2w7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gY29udHJvbD8udmFsaWRhdG9yID8gW2NvbnRyb2wudmFsaWRhdG9yXSA6IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNIaWpyaURhdGVwaWNrZXIpIHZhbGlkYXRvcnMucHVzaChJUEFGb3JtU2VydmljZS52YWxpZEhpanJpRGF0ZSk7XHJcbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7fVxyXG5cclxuICBvblRvdWNoZWQoKTogdm9pZCB7fVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIG9wZW5EYXRlcGlja2VyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5kYXRlcGlja2VyLmlzT3BlbigpKSB7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci50b2dnbGUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JNZXNzYWdlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgdGhpcy5lcnJvck1zZyA9IHRoaXMuaXBhRm9ybVNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKFxyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLFxyXG4gICAgICB0aGlzLnBhdHRlcm5FcnJvck1zZyxcclxuICAgICAgdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvck1zZztcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZmxvYXRpbmcgaW5wdXQtZ3JvdXAge3tjb250YWluZXJDbGFzc2VzfX1cIj5cclxuICAgIDxpbnB1dCBpZD1cInt7aWR9fVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkIGlzLWludmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkpICYmIGVycm9yTXNnLCdpcy12YWxpZCBpcy12YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkgICYmIChlcnJvck1zZyB8fCBjb250cm9sRGlyLnZhbHVlKSl9XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCB7e2NsYXNzZXN9fVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtmaXJzdERheU9mV2Vla109XCI3XCIgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICNkPVwibmdiRGF0ZXBpY2tlclwiIFttYXhEYXRlXT1cIm1heERhdGVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCJcclxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBzdHlsZT1cIm91dGxpbmU6IHVuc2V0OyB6LWluZGV4OiB1bnNldCAhaW1wb3J0YW50O1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7bGFiZWx9fVwiPlxyXG4gICAgPGxhYmVsIGZvcj1cInt7aWR9fVwiPnt7bGFiZWx9fTwvbGFiZWw+XHJcbiAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgY2FsZW5kZXJCdG5cIiAoY2xpY2spPVwib3BlbkRhdGVwaWNrZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNhbGVuZGFyLWFsdCBmYS1sZ1wiPjwvaT5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2UgIT09IG51bGxcIj5cclxuICAgICAgICB7e2Vycm9yTXNnfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZSBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgICAgICA8aHI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG0tMiBcIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBmbG9hdDogcmlnaHQ7XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnBhdGNoVmFsdWUodG9kYXkpO2QubmF2aWdhdGVUbyh0b2RheSk7XCI+2KfZhNmK2YjZhTwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIG0tMlwiIHN0eWxlPVwid2lkdGg6IGF1dG87IGZsb2F0OiBsZWZ0O1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5wYXRjaFZhbHVlKG51bGwpO2QuY2xvc2UoKVwiPtmF2LPYrTwvYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBUS9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBT3JELE1BQU0sT0FBTyxtQkFBbUI7SUFnQjlCLFlBQ1UsY0FBOEIsRUFDOUIsUUFBcUIsRUFDZCxVQUFxQixFQUNwQyxNQUFnQyxFQUN4QixFQUFxQjtRQUpyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQVc7UUFFNUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFsQnRCLFVBQUssR0FBRyxZQUFZLENBQUM7UUFDckIsb0JBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUNwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS2pCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRTdCLFVBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQXVCLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFVM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakUsSUFBSSxJQUFJLENBQUMsaUJBQWlCO1lBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0UsT0FBTyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQTZCLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVLElBQVMsQ0FBQztJQUU3QixTQUFTLEtBQVUsQ0FBQztJQUNwQixVQUFVLENBQUMsR0FBUSxJQUFTLENBQUM7SUFFN0IsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FDakQsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOztpSEF0RVUsbUJBQW1CO3FHQUFuQixtQkFBbUIsdVhDeEJoQywrbkRBcUJNOzRGREdPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQXVCdkIsSUFBSTttSEFsQlMsVUFBVTtzQkFBekIsU0FBUzt1QkFBQyxHQUFHO2dCQUNMLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgU2VsZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIE5nYkNhbGVuZGFyLFxyXG4gIE5nYkRhdGUsXHJcbiAgTmdiRGF0ZVN0cnVjdCxcclxuICBOZ2JJbnB1dERhdGVwaWNrZXIsXHJcbiAgTmdiSW5wdXREYXRlcGlja2VyQ29uZmlnLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICBAVmlld0NoaWxkKCdkJykgZGF0ZXBpY2tlciE6IE5nYklucHV0RGF0ZXBpY2tlcjtcclxuICBASW5wdXQoKSBpZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbCA9ICdkYXRlcGlja2VyJztcclxuICBASW5wdXQoKSBwYXR0ZXJuRXJyb3JNc2cgPSAnaW52YWxpZCBwYXR0ZXJuJztcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heERhdGUhOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIG1pbkRhdGUhOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIGNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3NlcyE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0FyYWJpY0Zvcm0gPSB0cnVlO1xyXG4gIGlzSGlqcmlEYXRlcGlja2VyITogYm9vbGVhbjtcclxuICB0b2RheSA9IHRoaXMuY2FsZW5kYXIuZ2V0VG9kYXkoKTtcclxuICBmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XHJcbiAgZXJyb3JNc2chOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaXBhRm9ybVNlcnZpY2U6IElQQUZvcm1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWxlbmRhcjogTmdiQ2FsZW5kYXIsXHJcbiAgICBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2wsXHJcbiAgICBjb25maWc6IE5nYklucHV0RGF0ZXBpY2tlckNvbmZpZyxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xEaXIudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICBjb25maWcuY29udGFpbmVyID0gbnVsbDtcclxuICAgIGNvbmZpZy5wbGFjZW1lbnQgPSAnYm90dG9tLWNlbnRlcic7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xyXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGNvbnRyb2w/LnZhbGlkYXRvciA/IFtjb250cm9sLnZhbGlkYXRvcl0gOiBbXTtcclxuICAgIGlmICh0aGlzLmlzSGlqcmlEYXRlcGlja2VyKSB2YWxpZGF0b3JzLnB1c2goSVBBRm9ybVNlcnZpY2UudmFsaWRIaWpyaURhdGUpO1xyXG4gICAgY29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIG9uVG91Y2hlZCgpOiB2b2lkIHt9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge31cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRhdGVwaWNrZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGVwaWNrZXIuaXNPcGVuKCkpIHtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLnRvZ2dsZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy5pcGFGb3JtU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wsXHJcbiAgICAgIHRoaXMucGF0dGVybkVycm9yTXNnLFxyXG4gICAgICB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmVycm9yTXNnO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1mbG9hdGluZyBpbnB1dC1ncm91cCB7e2NvbnRhaW5lckNsYXNzZXN9fVwiPlxyXG4gICAgPGlucHV0IGlkPVwie3tpZH19XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQgaXMtaW52YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSkgJiYgZXJyb3JNc2csJ2lzLXZhbGlkIGlzLXZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8udmFsaWQgJiYgKGNvbnRyb2xEaXIuY29udHJvbD8uZGlydHkgfHwgY29udHJvbERpci5jb250cm9sPy50b3VjaGVkKSAgJiYgKGVycm9yTXNnIHx8IGNvbnRyb2xEaXIudmFsdWUpKX1cIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7Y2xhc3Nlc319XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cIjdcIiBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgI2Q9XCJuZ2JEYXRlcGlja2VyXCIgW21heERhdGVdPVwibWF4RGF0ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIHN0eWxlPVwib3V0bGluZTogdW5zZXQ7IHotaW5kZXg6IHVuc2V0ICFpbXBvcnRhbnQ7XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3tsYWJlbH19XCI+XHJcbiAgICA8bGFiZWwgZm9yPVwie3tpZH19XCI+e3tsYWJlbH19PC9sYWJlbD5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dCBjYWxlbmRlckJ0blwiIChjbGljayk9XCJvcGVuRGF0ZXBpY2tlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY2FsZW5kYXItYWx0IGZhLWxnXCI+PC9pPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImVycm9yTWVzc2FnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgIHt7ZXJyb3JNc2d9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgICAgIDxocj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbS0yIFwiIHN0eWxlPVwid2lkdGg6IGF1dG87IGZsb2F0OiByaWdodDtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0b2RheSk7ZC5uYXZpZ2F0ZVRvKHRvZGF5KTtcIj7Yp9mE2YrZiNmFPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gbS0yXCIgc3R5bGU9XCJ3aWR0aDogYXV0bzsgZmxvYXQ6IGxlZnQ7XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnBhdGNoVmFsdWUobnVsbCk7ZC5jbG9zZSgpXCI+2YXYs9itPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
@@ -3,25 +3,25 @@ import { NgbCalendar, NgbCalendarGregorian, NgbDatepickerI18n } from '@ng-bootst
3
3
  import { DatepickerComponent } from '../datepicker.component';
4
4
  import { Gregorian18n } from './gregorian18n';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@ng-bootstrap/ng-bootstrap";
6
+ import * as i1 from "@angular/common";
7
7
  import * as i2 from "@angular/forms";
8
- import * as i3 from "@angular/common";
8
+ import * as i3 from "@ng-bootstrap/ng-bootstrap";
9
9
  export class GregorianDatepickerComponent extends DatepickerComponent {
10
10
  constructor() {
11
11
  super(...arguments);
12
12
  this.isHijriDatepicker = false;
13
13
  }
14
14
  }
15
- GregorianDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
- GregorianDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: GregorianDatepickerComponent, selector: "ipa-gregorian-datepicker", providers: [
15
+ GregorianDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: GregorianDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
+ GregorianDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: GregorianDatepickerComponent, selector: "ipa-gregorian-datepicker", providers: [
17
17
  { provide: NgbCalendar, useClass: NgbCalendarGregorian },
18
18
  { provide: NgbDatepickerI18n, useClass: Gregorian18n },
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"] }] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
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"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", 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]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }] });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: GregorianDatepickerComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ selector: 'ipa-gregorian-datepicker', providers: [
23
23
  { provide: NgbCalendar, useClass: NgbCalendarGregorian },
24
24
  { provide: NgbDatepickerI18n, useClass: Gregorian18n },
25
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"] }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFXOUMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLG1CQUFtQjtJQVRyRTs7UUFVRSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7S0FDM0I7O3lIQUZZLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLG1EQUw1QjtRQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUM7UUFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtLQUN2RCxpRENaSCwrbkRBcUJNOzJGRFBPLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDRSwwQkFBMEIsYUFHekI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBQzt3QkFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtxQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkNhbGVuZGFyR3JlZ29yaWFuLCBOZ2JEYXRlcGlja2VySTE4biB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JlZ29yaWFuMThuIH0gZnJvbSAnLi9ncmVnb3JpYW4xOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZ3JlZ29yaWFuLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhckdyZWdvcmlhbn0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogR3JlZ29yaWFuMThuIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyZWdvcmlhbkRhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRlcGlja2VyQ29tcG9uZW50IHtcclxuICBpc0hpanJpRGF0ZXBpY2tlciA9IGZhbHNlO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIGlucHV0LWdyb3VwIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgICA8aW5wdXQgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZywnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpICAmJiAoZXJyb3JNc2cgfHwgY29udHJvbERpci52YWx1ZSkpfVwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbZmlyc3REYXlPZldlZWtdPVwiN1wiIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAjZD1cIm5nYkRhdGVwaWNrZXJcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgc3R5bGU9XCJvdXRsaW5lOiB1bnNldDsgei1pbmRleDogdW5zZXQgIWltcG9ydGFudDtcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoYmx1cik9XCJvblRvdWNoZWQoKVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e2xhYmVsfX1cIj5cclxuICAgIDxsYWJlbCBmb3I9XCJ7e2lkfX1cIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0IGNhbGVuZGVyQnRuXCIgKGNsaWNrKT1cIm9wZW5EYXRlcGlja2VyKCRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jYWxlbmRhci1hbHQgZmEtbGdcIj48L2k+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlICE9PSBudWxsXCI+XHJcbiAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGhyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtLTIgXCIgc3R5bGU9XCJ3aWR0aDogYXV0bzsgZmxvYXQ6IHJpZ2h0O1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRvZGF5KTtkLm5hdmlnYXRlVG8odG9kYXkpO1wiPtin2YTZitmI2YU8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBtLTJcIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBmbG9hdDogbGVmdDtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtkLmNsb3NlKClcIj7Zhdiz2K08L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFXOUMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLG1CQUFtQjtJQVRyRTs7UUFVRSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7S0FDM0I7OzBIQUZZLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLG1EQUw1QjtRQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUM7UUFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtLQUN2RCxpRENaSCwrbkRBcUJNOzRGRFBPLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDRSwwQkFBMEIsYUFHekI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBQzt3QkFDdkQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtxQkFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkNhbGVuZGFyR3JlZ29yaWFuLCBOZ2JEYXRlcGlja2VySTE4biB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JlZ29yaWFuMThuIH0gZnJvbSAnLi9ncmVnb3JpYW4xOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZ3JlZ29yaWFuLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhckdyZWdvcmlhbn0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogR3JlZ29yaWFuMThuIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyZWdvcmlhbkRhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRlcGlja2VyQ29tcG9uZW50IHtcclxuICBpc0hpanJpRGF0ZXBpY2tlciA9IGZhbHNlO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIGlucHV0LWdyb3VwIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgICA8aW5wdXQgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZywnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpICAmJiAoZXJyb3JNc2cgfHwgY29udHJvbERpci52YWx1ZSkpfVwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbZmlyc3REYXlPZldlZWtdPVwiN1wiIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAjZD1cIm5nYkRhdGVwaWNrZXJcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgc3R5bGU9XCJvdXRsaW5lOiB1bnNldDsgei1pbmRleDogdW5zZXQgIWltcG9ydGFudDtcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoYmx1cik9XCJvblRvdWNoZWQoKVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e2xhYmVsfX1cIj5cclxuICAgIDxsYWJlbCBmb3I9XCJ7e2lkfX1cIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0IGNhbGVuZGVyQnRuXCIgKGNsaWNrKT1cIm9wZW5EYXRlcGlja2VyKCRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jYWxlbmRhci1hbHQgZmEtbGdcIj48L2k+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlICE9PSBudWxsXCI+XHJcbiAgICAgICAge3tlcnJvck1zZ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGhyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtLTIgXCIgc3R5bGU9XCJ3aWR0aDogYXV0bzsgZmxvYXQ6IHJpZ2h0O1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRvZGF5KTtkLm5hdmlnYXRlVG8odG9kYXkpO1wiPtin2YTZitmI2YU8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBtLTJcIiBzdHlsZT1cIndpZHRoOiBhdXRvOyBmbG9hdDogbGVmdDtcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtkLmNsb3NlKClcIj7Zhdiz2K08L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
@@ -30,9 +30,9 @@ export class Gregorian18n extends NgbDatepickerI18n {
30
30
  return `${date.day}-${date.month}-${date.year}`;
31
31
  }
32
32
  }
33
- Gregorian18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
34
- Gregorian18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: Gregorian18n });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: Gregorian18n, decorators: [{
33
+ Gregorian18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Gregorian18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
34
+ Gregorian18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Gregorian18n });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Gregorian18n, decorators: [{
36
36
  type: Injectable
37
37
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZ29yaWFuMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbjE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRCxNQUFNLE1BQU0sR0FBRztJQUNiLE9BQU87SUFDUCxRQUFRO0lBQ1IsTUFBTTtJQUNOLE9BQU87SUFDUCxNQUFNO0lBQ04sT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0lBQ1IsUUFBUTtDQUNULENBQUM7QUFHRixNQUFNLE9BQU8sWUFBYSxTQUFRLGlCQUFpQjtJQUNqRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFlLEVBQUUsS0FBd0I7UUFDdkQsT0FBTyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBbUI7UUFDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7eUdBZlUsWUFBWTs2R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGlvbldpZHRoIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlcGlja2VySTE4biwgTmdiRGF0ZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbmNvbnN0IFdFRUtEQVlTID0gWyfZhicsICfYqycsICfYsScsICfYricsICfYrCcsICfYsycsICfYrSddO1xyXG5jb25zdCBNT05USFMgPSBbXHJcbiAgJ9mK2YbYp9mK2LEnLFxyXG4gICfZgdio2LHYp9mK2LEnLFxyXG4gICfZhdin2LHYsycsXHJcbiAgJ9ij2KjYsdmK2YQnLFxyXG4gICfZhdin2YrZiCcsXHJcbiAgJ9mK2YjZhtmK2YgnLFxyXG4gICfZitmI2YTZitmIJyxcclxuICAn2KfYutiz2LfYsycsXHJcbiAgJ9iz2KjYqtmF2KjYsScsXHJcbiAgJ9ij2YPYqtmI2KjYsScsXHJcbiAgJ9mG2YjZgdmF2KjYsScsXHJcbiAgJ9iv2YrYs9mF2KjYsScsXHJcbl07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHcmVnb3JpYW4xOG4gZXh0ZW5kcyBOZ2JEYXRlcGlja2VySTE4biB7XHJcbiAgZ2V0TW9udGhTaG9ydE5hbWUobW9udGg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE1PTlRIU1ttb250aCAtIDFdO1xyXG4gIH1cclxuXHJcbiAgZ2V0TW9udGhGdWxsTmFtZShtb250aDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gTU9OVEhTW21vbnRoIC0gMV07XHJcbiAgfVxyXG5cclxuICBnZXRXZWVrZGF5TGFiZWwod2Vla2RheTogbnVtYmVyLCB3aWR0aD86IFRyYW5zbGF0aW9uV2lkdGgpIHtcclxuICAgIHJldHVybiBXRUVLREFZU1t3ZWVrZGF5IC0gMV07XHJcbiAgfVxyXG5cclxuICBnZXREYXlBcmlhTGFiZWwoZGF0ZTogTmdiRGF0ZVN0cnVjdCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7ZGF0ZS5kYXl9LSR7ZGF0ZS5tb250aH0tJHtkYXRlLnllYXJ9YDtcclxuICB9XHJcbn1cclxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlZ29yaWFuMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbjE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRCxNQUFNLE1BQU0sR0FBRztJQUNiLE9BQU87SUFDUCxRQUFRO0lBQ1IsTUFBTTtJQUNOLE9BQU87SUFDUCxNQUFNO0lBQ04sT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0lBQ1IsUUFBUTtDQUNULENBQUM7QUFHRixNQUFNLE9BQU8sWUFBYSxTQUFRLGlCQUFpQjtJQUNqRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFlLEVBQUUsS0FBd0I7UUFDdkQsT0FBTyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBbUI7UUFDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7MEdBZlUsWUFBWTs4R0FBWixZQUFZOzRGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGlvbldpZHRoIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlcGlja2VySTE4biwgTmdiRGF0ZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbmNvbnN0IFdFRUtEQVlTID0gWyfZhicsICfYqycsICfYsScsICfYricsICfYrCcsICfYsycsICfYrSddO1xyXG5jb25zdCBNT05USFMgPSBbXHJcbiAgJ9mK2YbYp9mK2LEnLFxyXG4gICfZgdio2LHYp9mK2LEnLFxyXG4gICfZhdin2LHYsycsXHJcbiAgJ9ij2KjYsdmK2YQnLFxyXG4gICfZhdin2YrZiCcsXHJcbiAgJ9mK2YjZhtmK2YgnLFxyXG4gICfZitmI2YTZitmIJyxcclxuICAn2KfYutiz2LfYsycsXHJcbiAgJ9iz2KjYqtmF2KjYsScsXHJcbiAgJ9ij2YPYqtmI2KjYsScsXHJcbiAgJ9mG2YjZgdmF2KjYsScsXHJcbiAgJ9iv2YrYs9mF2KjYsScsXHJcbl07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHcmVnb3JpYW4xOG4gZXh0ZW5kcyBOZ2JEYXRlcGlja2VySTE4biB7XHJcbiAgZ2V0TW9udGhTaG9ydE5hbWUobW9udGg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE1PTlRIU1ttb250aCAtIDFdO1xyXG4gIH1cclxuXHJcbiAgZ2V0TW9udGhGdWxsTmFtZShtb250aDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gTU9OVEhTW21vbnRoIC0gMV07XHJcbiAgfVxyXG5cclxuICBnZXRXZWVrZGF5TGFiZWwod2Vla2RheTogbnVtYmVyLCB3aWR0aD86IFRyYW5zbGF0aW9uV2lkdGgpIHtcclxuICAgIHJldHVybiBXRUVLREFZU1t3ZWVrZGF5IC0gMV07XHJcbiAgfVxyXG5cclxuICBnZXREYXlBcmlhTGFiZWwoZGF0ZTogTmdiRGF0ZVN0cnVjdCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7ZGF0ZS5kYXl9LSR7ZGF0ZS5tb250aH0tJHtkYXRlLnllYXJ9YDtcclxuICB9XHJcbn1cclxuIl19
@@ -30,9 +30,9 @@ export class IslamicI18n extends NgbDatepickerI18n {
30
30
  return `${date.day}-${date.month}-${date.year}`;
31
31
  }
32
32
  }
33
- IslamicI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
34
- IslamicI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: IslamicI18n });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: IslamicI18n, decorators: [{
33
+ IslamicI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IslamicI18n, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
34
+ IslamicI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IslamicI18n });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IslamicI18n, decorators: [{
36
36
  type: Injectable
37
37
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNsYW1pY0kxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9Jc2xhbWljSTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRCxNQUFNLE1BQU0sR0FBRztJQUNiLE1BQU07SUFDTixLQUFLO0lBQ0wsWUFBWTtJQUNaLFlBQVk7SUFDWixjQUFjO0lBQ2QsY0FBYztJQUNkLEtBQUs7SUFDTCxPQUFPO0lBQ1AsT0FBTztJQUNQLE1BQU07SUFDTixXQUFXO0lBQ1gsVUFBVTtDQUNYLENBQUM7QUFHRixNQUFNLE9BQU8sV0FBWSxTQUFRLGlCQUFpQjtJQUNoRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFlLEVBQUUsS0FBd0I7UUFDdkQsT0FBTyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBbUI7UUFDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7d0dBZlUsV0FBVzs0R0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGlvbldpZHRoIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlcGlja2VySTE4biwgTmdiRGF0ZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbmNvbnN0IFdFRUtEQVlTID0gWyfZhicsICfYqycsICfYsScsICfYricsICfYrCcsICfYsycsICfYrSddO1xyXG5jb25zdCBNT05USFMgPSBbXHJcbiAgJ9mF2K3YsdmFJyxcclxuICAn2LXZgdixJyxcclxuICAn2LHYqNmK2Lkg2KfZhNij2YjZhCcsXHJcbiAgJ9ix2KjZiti5INin2YTYotiu2LEnLFxyXG4gICfYrNmF2KfYr9mJINin2YTYo9mI2YTZiScsXHJcbiAgJ9is2YXYp9iv2Ykg2KfZhNii2K7YsdipJyxcclxuICAn2LHYrNioJyxcclxuICAn2LTYudio2KfZhicsXHJcbiAgJ9ix2YXYttin2YYnLFxyXG4gICfYtNmI2KfZhCcsXHJcbiAgJ9iw2Ygg2KfZhNmC2LnYr9ipJyxcclxuICAn2LDZiCDYp9mE2K3YrNipJyxcclxuXTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElzbGFtaWNJMThuIGV4dGVuZHMgTmdiRGF0ZXBpY2tlckkxOG4ge1xyXG4gIGdldE1vbnRoU2hvcnROYW1lKG1vbnRoOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBNT05USFNbbW9udGggLSAxXTtcclxuICB9XHJcblxyXG4gIGdldE1vbnRoRnVsbE5hbWUobW9udGg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE1PTlRIU1ttb250aCAtIDFdO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2Vla2RheUxhYmVsKHdlZWtkYXk6IG51bWJlciwgd2lkdGg/OiBUcmFuc2xhdGlvbldpZHRoKSB7XHJcbiAgICByZXR1cm4gV0VFS0RBWVNbd2Vla2RheSAtIDFdO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF5QXJpYUxhYmVsKGRhdGU6IE5nYkRhdGVTdHJ1Y3QpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2RhdGUuZGF5fS0ke2RhdGUubW9udGh9LSR7ZGF0ZS55ZWFyfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNsYW1pY0kxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9Jc2xhbWljSTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRCxNQUFNLE1BQU0sR0FBRztJQUNiLE1BQU07SUFDTixLQUFLO0lBQ0wsWUFBWTtJQUNaLFlBQVk7SUFDWixjQUFjO0lBQ2QsY0FBYztJQUNkLEtBQUs7SUFDTCxPQUFPO0lBQ1AsT0FBTztJQUNQLE1BQU07SUFDTixXQUFXO0lBQ1gsVUFBVTtDQUNYLENBQUM7QUFHRixNQUFNLE9BQU8sV0FBWSxTQUFRLGlCQUFpQjtJQUNoRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFlLEVBQUUsS0FBd0I7UUFDdkQsT0FBTyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBbUI7UUFDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7eUdBZlUsV0FBVzs2R0FBWCxXQUFXOzRGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGlvbldpZHRoIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlcGlja2VySTE4biwgTmdiRGF0ZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbmNvbnN0IFdFRUtEQVlTID0gWyfZhicsICfYqycsICfYsScsICfYricsICfYrCcsICfYsycsICfYrSddO1xyXG5jb25zdCBNT05USFMgPSBbXHJcbiAgJ9mF2K3YsdmFJyxcclxuICAn2LXZgdixJyxcclxuICAn2LHYqNmK2Lkg2KfZhNij2YjZhCcsXHJcbiAgJ9ix2KjZiti5INin2YTYotiu2LEnLFxyXG4gICfYrNmF2KfYr9mJINin2YTYo9mI2YTZiScsXHJcbiAgJ9is2YXYp9iv2Ykg2KfZhNii2K7YsdipJyxcclxuICAn2LHYrNioJyxcclxuICAn2LTYudio2KfZhicsXHJcbiAgJ9ix2YXYttin2YYnLFxyXG4gICfYtNmI2KfZhCcsXHJcbiAgJ9iw2Ygg2KfZhNmC2LnYr9ipJyxcclxuICAn2LDZiCDYp9mE2K3YrNipJyxcclxuXTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElzbGFtaWNJMThuIGV4dGVuZHMgTmdiRGF0ZXBpY2tlckkxOG4ge1xyXG4gIGdldE1vbnRoU2hvcnROYW1lKG1vbnRoOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBNT05USFNbbW9udGggLSAxXTtcclxuICB9XHJcblxyXG4gIGdldE1vbnRoRnVsbE5hbWUobW9udGg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE1PTlRIU1ttb250aCAtIDFdO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2Vla2RheUxhYmVsKHdlZWtkYXk6IG51bWJlciwgd2lkdGg/OiBUcmFuc2xhdGlvbldpZHRoKSB7XHJcbiAgICByZXR1cm4gV0VFS0RBWVNbd2Vla2RheSAtIDFdO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF5QXJpYUxhYmVsKGRhdGU6IE5nYkRhdGVTdHJ1Y3QpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2RhdGUuZGF5fS0ke2RhdGUubW9udGh9LSR7ZGF0ZS55ZWFyfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==