i-tech-shared-components 1.1.8 → 1.1.10

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 (39) hide show
  1. package/README.md +23 -23
  2. package/esm2022/lib/components/autocomplete-select/autocomplete-select.component.mjs +3 -3
  3. package/esm2022/lib/components/button/button.component.mjs +3 -3
  4. package/esm2022/lib/components/clear-value/clear-value.component.mjs +11 -11
  5. package/esm2022/lib/components/date-picker/date-picker.component.mjs +17 -3
  6. package/esm2022/lib/components/date-range-datepicker/date-range-datepicker.component.mjs +3 -3
  7. package/esm2022/lib/components/icon-button/icon-button.component.mjs +3 -3
  8. package/esm2022/lib/components/menu/menu.component.mjs +51 -0
  9. package/esm2022/lib/components/text/text-input.component.mjs +3 -3
  10. package/esm2022/lib/directives/date-mask.directive.mjs +1 -1
  11. package/esm2022/lib/directives/input-mask.directive.mjs +1 -1
  12. package/esm2022/lib/interfaces/app-input.interface.mjs +1 -1
  13. package/esm2022/lib/interfaces/autocomplete-configs.interface.mjs +1 -1
  14. package/esm2022/lib/interfaces/button-types.enum.mjs +1 -1
  15. package/esm2022/lib/interfaces/dropdown-selection.constants.mjs +12 -0
  16. package/esm2022/lib/pipes/array-to-string.pipe.mjs +1 -1
  17. package/esm2022/lib/pipes/generate-error-messages.pipe.mjs +1 -1
  18. package/esm2022/lib/pipes/get-value-by-key-from-object.pipe.mjs +1 -1
  19. package/esm2022/lib/services/input.service.mjs +1 -1
  20. package/esm2022/public-api.mjs +2 -1
  21. package/fesm2022/i-tech-shared-components.mjs +92 -25
  22. package/fesm2022/i-tech-shared-components.mjs.map +1 -1
  23. package/lib/components/date-picker/date-picker.component.d.ts +4 -1
  24. package/lib/components/menu/menu.component.d.ts +28 -0
  25. package/lib/interfaces/autocomplete-configs.interface.d.ts +3 -3
  26. package/lib/interfaces/dropdown-selection.constants.d.ts +10 -0
  27. package/package.json +1 -1
  28. package/public-api.d.ts +1 -0
  29. package/theme/_buttons.scss +63 -63
  30. package/theme/_color_themes.scss +136 -136
  31. package/theme/_date_picker.scss +77 -77
  32. package/theme/_form_fields.scss +112 -112
  33. package/theme/_icon-button.scss +123 -123
  34. package/theme/_label.scss +119 -119
  35. package/theme/_mat-selects.scss +248 -248
  36. package/theme/_menu.scss +9 -9
  37. package/theme/_text_input.scss +28 -28
  38. package/theme/variables/_colors.scss +20 -20
  39. package/theme.scss +31 -31
@@ -22,12 +22,24 @@ export class DatePickerComponent {
22
22
  this.inputService = inputService;
23
23
  this.label = '';
24
24
  this.required = false;
25
+ this.pastDatesDisabled = false;
25
26
  this.hintText = '';
26
27
  this.placeholder = 'MM/DD/YYYY';
27
28
  this.submit = false;
28
29
  this.valueChangeEmitter = new EventEmitter();
29
30
  this.isOpen = false;
30
31
  this.focused = false;
32
+ this.today = new Date();
33
+ // Filter to disable past dates
34
+ this.dateFilter = (date) => {
35
+ if (this.pastDatesDisabled) {
36
+ const today = this.today;
37
+ return date ? date >= today : false;
38
+ }
39
+ else {
40
+ return true;
41
+ }
42
+ };
31
43
  this.customErrorStateMatcher = {
32
44
  isErrorState: (control, form) => {
33
45
  return !!(control && control.invalid && this.submit);
@@ -48,7 +60,7 @@ export class DatePickerComponent {
48
60
  }, 120);
49
61
  }
50
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "i-tech-date-picker", inputs: { label: "label", defaultPatternKey: "defaultPatternKey", required: "required", hintText: "hintText", placeholder: "placeholder", iconPrefix: "iconPrefix", iconPrefixSvg: "iconPrefixSvg", iconPrefixTooltip: "iconPrefixTooltip", iconPrefixColor: "iconPrefixColor", iconPrefixVariant: "iconPrefixVariant", valueChangeEmit: "valueChangeEmit", submit: "submit" }, outputs: { valueChangeEmitter: "valueChangeEmitter" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && submit)\r\n }\">\r\n {{ label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\r\n [class.readonly-field]=\"ngControl.control.disabled\">\r\n <input matInput #inputElement\r\n type=\"text\"\r\n [formControl]=\"ngControl.control\"\r\n [placeholder]=\"placeholder | translate\"\r\n dateMask\r\n [matDatepicker]=\"datePicker\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (focus)=\"focused = true\"\r\n (click)=\"datePicker.open();\"\r\n (dateChange)=\"emitChange()\"\r\n >\r\n\r\n <mat-icon *ngIf=\"iconPrefix\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"iconPrefixColor\"\r\n >{{ iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'date_range'\"\r\n [disabled]=\"ngControl.control.disabled\"\r\n (click)=\"datePicker.open()\"\r\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n ></i-tech-icon-button>\r\n\r\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\r\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\r\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\r\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\r\n >\r\n {{ hintText | translate }}\r\n </mat-hint>\r\n\r\n </mat-form-field>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }] }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "i-tech-date-picker", inputs: { label: "label", defaultPatternKey: "defaultPatternKey", required: "required", pastDatesDisabled: "pastDatesDisabled", hintText: "hintText", placeholder: "placeholder", iconPrefix: "iconPrefix", iconPrefixSvg: "iconPrefixSvg", iconPrefixTooltip: "iconPrefixTooltip", iconPrefixColor: "iconPrefixColor", iconPrefixVariant: "iconPrefixVariant", valueChangeEmit: "valueChangeEmit", submit: "submit" }, outputs: { valueChangeEmitter: "valueChangeEmitter" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && submit)\n }\">\n {{ label | translate }}\n </mat-label>\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\n [class.readonly-field]=\"ngControl.control.disabled\">\n <input matInput #inputElement\n type=\"text\"\n [formControl]=\"ngControl.control\"\n [placeholder]=\"placeholder | translate\"\n dateMask\n [matDatepicker]=\"datePicker\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [matDatepickerFilter]=\"dateFilter\"\n (focus)=\"focused = true\"\n (click)=\"datePicker.open();\"\n (dateChange)=\"emitChange()\"\n >\n\n <mat-icon *ngIf=\"iconPrefix\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [style.color]=\"iconPrefixColor\"\n >{{ iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"iconPrefixSvg\"\n ></mat-icon>\n\n <i-tech-icon-button matSuffix\n [iconName]=\"'date_range'\"\n [disabled]=\"ngControl.control.disabled\"\n (click)=\"datePicker.open()\"\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n ></i-tech-icon-button>\n\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\n >\n {{ hintText | translate }}\n </mat-hint>\n\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }] }); }
52
64
  }
53
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, decorators: [{
54
66
  type: Component,
@@ -63,13 +75,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
63
75
  MatIconModule,
64
76
  DateMaskDirective,
65
77
  GenerateErrorMessagesPipe, IconButtonComponent
66
- ], standalone: true, template: "<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && submit)\r\n }\">\r\n {{ label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\r\n [class.readonly-field]=\"ngControl.control.disabled\">\r\n <input matInput #inputElement\r\n type=\"text\"\r\n [formControl]=\"ngControl.control\"\r\n [placeholder]=\"placeholder | translate\"\r\n dateMask\r\n [matDatepicker]=\"datePicker\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (focus)=\"focused = true\"\r\n (click)=\"datePicker.open();\"\r\n (dateChange)=\"emitChange()\"\r\n >\r\n\r\n <mat-icon *ngIf=\"iconPrefix\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"iconPrefixColor\"\r\n >{{ iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'date_range'\"\r\n [disabled]=\"ngControl.control.disabled\"\r\n (click)=\"datePicker.open()\"\r\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n ></i-tech-icon-button>\r\n\r\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\r\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\r\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\r\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\r\n >\r\n {{ hintText | translate }}\r\n </mat-hint>\r\n\r\n </mat-form-field>\r\n</div>\r\n" }]
78
+ ], standalone: true, template: "<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && submit)\n }\">\n {{ label | translate }}\n </mat-label>\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\n [class.readonly-field]=\"ngControl.control.disabled\">\n <input matInput #inputElement\n type=\"text\"\n [formControl]=\"ngControl.control\"\n [placeholder]=\"placeholder | translate\"\n dateMask\n [matDatepicker]=\"datePicker\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [matDatepickerFilter]=\"dateFilter\"\n (focus)=\"focused = true\"\n (click)=\"datePicker.open();\"\n (dateChange)=\"emitChange()\"\n >\n\n <mat-icon *ngIf=\"iconPrefix\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [style.color]=\"iconPrefixColor\"\n >{{ iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"iconPrefixSvg\"\n ></mat-icon>\n\n <i-tech-icon-button matSuffix\n [iconName]=\"'date_range'\"\n [disabled]=\"ngControl.control.disabled\"\n (click)=\"datePicker.open()\"\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n ></i-tech-icon-button>\n\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\n >\n {{ hintText | translate }}\n </mat-hint>\n\n </mat-form-field>\n</div>\n" }]
67
79
  }], ctorParameters: () => [{ type: i1.InputService }], propDecorators: { label: [{
68
80
  type: Input
69
81
  }], defaultPatternKey: [{
70
82
  type: Input
71
83
  }], required: [{
72
84
  type: Input
85
+ }], pastDatesDisabled: [{
86
+ type: Input
73
87
  }], hintText: [{
74
88
  type: Input
75
89
  }], placeholder: [{
@@ -94,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
94
108
  }], valueChangeEmitter: [{
95
109
  type: Output
96
110
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQWtCLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBbUJ6RSxNQUFNLE9BQU8sbUJBQW1CO0lBc0I1QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXJCckMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBVyxZQUFZLENBQUM7UUFRbkMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV2Qix1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBb0JoQiw0QkFBdUIsR0FBRztZQUN0QixZQUFZLEVBQUUsQ0FBQyxPQUFZLEVBQUUsSUFBUyxFQUFXLEVBQUU7Z0JBQy9DLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELENBQUM7U0FDSixDQUFDO1FBbkJFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQXFCLENBQUM7SUFDNUUsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0MsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ1YsQ0FBQzsrR0FwQ1EsbUJBQW1CO21HQUFuQixtQkFBbUIsbW1CQy9CaEMsdWpGQTZEQSw0Q0QzQ0ksT0FBTyxvRkFBRSxJQUFJLDRGQUNiLGVBQWUsMkZBQ2YsbUJBQW1CLHlrQkFDbkIsa0JBQWtCLGl1QkFDbEIsbUJBQW1CLCtUQUNuQixRQUFRLGlVQUNSLFVBQVUsZ1JBQ1YsYUFBYSxvTEFDYixpQkFBaUIsNkdBQ2pCLHlCQUF5Qiw4REFBRSxtQkFBbUI7OzRGQUlyQyxtQkFBbUI7a0JBakIvQixTQUFTOytCQUNJLG9CQUFvQixXQUV2Qjt3QkFDUCxPQUFPLEVBQUUsSUFBSTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLFFBQVE7d0JBQ1IsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIseUJBQXlCLEVBQUUsbUJBQW1CO3FCQUMvQyxjQUNhLElBQUk7aUZBR1AsS0FBSztzQkFBYixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNxQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ2Ysa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQ29udHJvbE5hbWUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHtNYXREYXRlcGlja2VyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xyXG5pbXBvcnQge01hdElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcclxuaW1wb3J0IHtNYXRUb29sdGlwfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7RGF0ZU1hc2tEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2RhdGUtbWFzay5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZXMvZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZVwiO1xyXG5pbXBvcnQge0ljb25CdXR0b25Db21wb25lbnR9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpLXRlY2gtZGF0ZS1waWNrZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLCBOZ0lmLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXRJbnB1dCxcclxuICAgIE1hdFRvb2x0aXAsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgRGF0ZU1hc2tEaXJlY3RpdmUsXHJcbiAgICBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlLCBJY29uQnV0dG9uQ29tcG9uZW50XHJcbiAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gICAgQElucHV0KCkgZGVmYXVsdFBhdHRlcm5LZXkhOiBzdHJpbmcgO1xyXG4gICAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGhpbnRUZXh0OiBzdHJpbmcgPSAnJztcclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnTU0vREQvWVlZWSc7XHJcbiAgICBASW5wdXQoKSBpY29uUHJlZml4Pzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaWNvblByZWZpeFN2Zz86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGljb25QcmVmaXhUb29sdGlwPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaWNvblByZWZpeENvbG9yPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaWNvblByZWZpeFZhcmlhbnQ/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB2YWx1ZUNoYW5nZUVtaXQ/OiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIHN1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcclxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZUVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgaXNPcGVuID0gZmFsc2U7XHJcbiAgICBmb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gICAgbmdDb250cm9sOiBGb3JtQ29udHJvbE5hbWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnB1dFNlcnZpY2U6IElucHV0U2VydmljZSkge1xyXG4gICAgICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbnB1dFNlcnZpY2UuaW5qZWN0TmdDb250cm9sKCkgYXMgRm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGVtaXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlQ2hhbmdlRW1pdCkgeyByZXR1cm47IH1cclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlRW1pdHRlci5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tGb3JGb2N1c091dCgpOiB2b2lkIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcclxuICAgICAgICB9LDEyMClcclxuICAgIH1cclxuXHJcbiAgICBjdXN0b21FcnJvclN0YXRlTWF0Y2hlciA9IHtcclxuICAgICAgICBpc0Vycm9yU3RhdGU6IChjb250cm9sOiBhbnksIGZvcm06IGFueSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgdGhpcy5zdWJtaXQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXhfY29sdW1uIHJlbGF0aXZlIG1hdC1kYXRlLXJhbmdlLWlucHV0XCIgKm5nSWY9XCJuZ0NvbnRyb2xcIiBbbmdDbGFzc109XCJ7J2NoZWNrX3JlcXVpcmVtZW50cyc6IHN1Ym1pdH1cIj5cclxuICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgIDxtYXQtbGFiZWwgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdyZWFkb25seS1jb2xvcicgOiBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCxcclxuICAgICAgICAnaW52YWxpZC1sYWJlbC1jb2xvcic6ICEhKG5nQ29udHJvbC5jb250cm9sLmVycm9ycyAmJiBzdWJtaXQpXHJcbiAgICAgICAgfVwiPlxyXG4gICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9tYXQtbGFiZWw+XHJcbiAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZC1pbnB1dFwiIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWR9XCI+Kjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBbbmdDbGFzc109XCJ7J29wZW5lZF9jYWxlbmRhcic6IGlzT3Blbn1cIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MucmVhZG9ubHktZmllbGRdPVwibmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIj5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCAjaW5wdXRFbGVtZW50XHJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICBkYXRlTWFza1xyXG4gICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIlxyXG4gICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJjdXN0b21FcnJvclN0YXRlTWF0Y2hlclwiXHJcbiAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzZWQgPSB0cnVlXCJcclxuICAgICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5vcGVuKCk7XCJcclxuICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJlbWl0Q2hhbmdlKClcIlxyXG4gICAgPlxyXG5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25QcmVmaXhcIlxyXG4gICAgICAgICAgICAgIG1hdFByZWZpeFxyXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIigoaWNvblByZWZpeFRvb2x0aXAgfHwgJycpIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25QcmVmaXhDb2xvclwiXHJcbiAgICA+e3sgaWNvblByZWZpeCB9fVxyXG4gICAgPC9tYXQtaWNvbj5cclxuXHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uUHJlZml4U3ZnXCJcclxuICAgICAgICAgICAgICBtYXRQcmVmaXhcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoKGljb25QcmVmaXhUb29sdGlwIHx8ICcnKSB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgICAgIFtzdmdJY29uXT1cImljb25QcmVmaXhTdmdcIlxyXG4gICAgPjwvbWF0LWljb24+XHJcblxyXG4gICAgPGktdGVjaC1pY29uLWJ1dHRvbiBtYXRTdWZmaXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cIidkYXRlX3JhbmdlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkYXRlUGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJyA6ICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcidcIlxyXG4gICAgPjwvaS10ZWNoLWljb24tYnV0dG9uPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlciAjZGF0ZVBpY2tlciAoY2xvc2VkKT1cImlzT3BlbiA9IGZhbHNlO2NsaWNrRm9yRm9jdXNPdXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJpc09wZW4gPSB0cnVlO2ZvY3VzZWQgPSB0cnVlXCI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuXHJcbiAgICA8IS0tIEVycm9yIE1lc3NhZ2VzIC0tPlxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIiEhKG5nQ29udHJvbC5jb250cm9sLmVycm9ycyAmJiBzdWJtaXQpXCI+XHJcbiAgICAgIHt7IG5nQ29udHJvbC5jb250cm9sIHwgZ2VuZXJhdGVFcnJvck1lc3NhZ2VzIDogbGFiZWwgOiBkZWZhdWx0UGF0dGVybktleSB9fVxyXG4gICAgPC9tYXQtZXJyb3I+XHJcblxyXG4gICAgPCEtLSBIZWxwZXIgVGV4dCAtLT5cclxuICAgIDxtYXQtaGludCAqbmdJZj1cIiEoISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdCkpICYmIGhpbnRUZXh0XCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3JlYWRvbmx5LWNvbG9yJyA6IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGhpbnRUZXh0IHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L21hdC1oaW50PlxyXG5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj5cclxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQWtCLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBbUJ6RSxNQUFN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QkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ3FCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDZixrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbE5hbWUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW5wdXQuc2VydmljZSc7XG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQge01hdERhdGVwaWNrZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQge01hdElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7RGF0ZU1hc2tEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2RhdGUtbWFzay5kaXJlY3RpdmVcIjtcbmltcG9ydCB7R2VuZXJhdGVFcnJvck1lc3NhZ2VzUGlwZX0gZnJvbSBcIi4uLy4uL3BpcGVzL2dlbmVyYXRlLWVycm9yLW1lc3NhZ2VzLnBpcGVcIjtcbmltcG9ydCB7SWNvbkJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ktdGVjaC1kYXRlLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsIE5nSWYsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0SW5wdXQsXG4gICAgTWF0VG9vbHRpcCxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIERhdGVNYXNrRGlyZWN0aXZlLFxuICAgIEdlbmVyYXRlRXJyb3JNZXNzYWdlc1BpcGUsIEljb25CdXR0b25Db21wb25lbnRcbiAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBkZWZhdWx0UGF0dGVybktleSE6IHN0cmluZztcbiAgICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHBhc3REYXRlc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaGludFRleHQ6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnTU0vREQvWVlZWSc7XG4gICAgQElucHV0KCkgaWNvblByZWZpeD86IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uUHJlZml4U3ZnPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25QcmVmaXhUb29sdGlwPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25QcmVmaXhDb2xvcj86IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uUHJlZml4VmFyaWFudD86IHN0cmluZztcbiAgICBASW5wdXQoKSB2YWx1ZUNoYW5nZUVtaXQ/OiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgc3VibWl0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgaXNPcGVuID0gZmFsc2U7XG4gICAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgbmdDb250cm9sOiBGb3JtQ29udHJvbE5hbWU7XG5cbiAgICB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAvLyBGaWx0ZXIgdG8gZGlzYWJsZSBwYXN0IGRhdGVzXG4gICAgZGF0ZUZpbHRlciA9IChkYXRlOiBEYXRlIHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodGhpcy5wYXN0RGF0ZXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgdG9kYXkgPSB0aGlzLnRvZGF5O1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUgPyBkYXRlID49IHRvZGF5IDogZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlucHV0U2VydmljZTogSW5wdXRTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbnB1dFNlcnZpY2UuaW5qZWN0TmdDb250cm9sKCkgYXMgRm9ybUNvbnRyb2xOYW1lO1xuICAgIH1cblxuICAgIGVtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZUNoYW5nZUVtaXQpIHsgcmV0dXJuOyB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VFbWl0dGVyLmVtaXQoKTtcbiAgICB9XG5cbiAgICBjbGlja0ZvckZvY3VzT3V0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICB9LDEyMClcbiAgICB9XG5cbiAgICBjdXN0b21FcnJvclN0YXRlTWF0Y2hlciA9IHtcbiAgICAgICAgaXNFcnJvclN0YXRlOiAoY29udHJvbDogYW55LCBmb3JtOiBhbnkpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLnN1Ym1pdCk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXhfY29sdW1uIHJlbGF0aXZlIG1hdC1kYXRlLXJhbmdlLWlucHV0XCIgKm5nSWY9XCJuZ0NvbnRyb2xcIiBbbmdDbGFzc109XCJ7J2NoZWNrX3JlcXVpcmVtZW50cyc6IHN1Ym1pdH1cIj5cbiAgPGRpdiBjbGFzcz1cInctMTAwXCI+XG4gICAgPG1hdC1sYWJlbCBbbmdDbGFzc109XCJ7XG4gICAgICAgICdyZWFkb25seS1jb2xvcicgOiBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCxcbiAgICAgICAgJ2ludmFsaWQtbGFiZWwtY29sb3InOiAhIShuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgc3VibWl0KVxuICAgICAgICB9XCI+XG4gICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkLWlucHV0XCIgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcicgOiBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZH1cIj4qPC9zcGFuPlxuICA8L2Rpdj5cbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgW25nQ2xhc3NdPVwieydvcGVuZWRfY2FsZW5kYXInOiBpc09wZW59XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seS1maWVsZF09XCJuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZFwiPlxuICAgIDxpbnB1dCBtYXRJbnB1dCAjaW5wdXRFbGVtZW50XG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgZGF0ZU1hc2tcbiAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZVBpY2tlclwiXG4gICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJjdXN0b21FcnJvclN0YXRlTWF0Y2hlclwiXG4gICAgICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXJcIlxuICAgICAgICAgICAoZm9jdXMpPVwiZm9jdXNlZCA9IHRydWVcIlxuICAgICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5vcGVuKCk7XCJcbiAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiZW1pdENoYW5nZSgpXCJcbiAgICA+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uUHJlZml4XCJcbiAgICAgICAgICAgICAgbWF0UHJlZml4XG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIigoaWNvblByZWZpeFRvb2x0aXAgfHwgJycpIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJpY29uUHJlZml4Q29sb3JcIlxuICAgID57eyBpY29uUHJlZml4IH19XG4gICAgPC9tYXQtaWNvbj5cblxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25QcmVmaXhTdmdcIlxuICAgICAgICAgICAgICBtYXRQcmVmaXhcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKChpY29uUHJlZml4VG9vbHRpcCB8fCAnJykgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaWNvblByZWZpeFN2Z1wiXG4gICAgPjwvbWF0LWljb24+XG5cbiAgICA8aS10ZWNoLWljb24tYnV0dG9uIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cIidkYXRlX3JhbmdlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJyA6ICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcidcIlxuICAgID48L2ktdGVjaC1pY29uLWJ1dHRvbj5cblxuICAgIDxtYXQtZGF0ZXBpY2tlciAjZGF0ZVBpY2tlciAoY2xvc2VkKT1cImlzT3BlbiA9IGZhbHNlO2NsaWNrRm9yRm9jdXNPdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChvcGVuZWQpPVwiaXNPcGVuID0gdHJ1ZTtmb2N1c2VkID0gdHJ1ZVwiPjwvbWF0LWRhdGVwaWNrZXI+XG5cbiAgICA8IS0tIEVycm9yIE1lc3NhZ2VzIC0tPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhIShuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgc3VibWl0KVwiPlxuICAgICAge3sgbmdDb250cm9sLmNvbnRyb2wgfCBnZW5lcmF0ZUVycm9yTWVzc2FnZXMgOiBsYWJlbCA6IGRlZmF1bHRQYXR0ZXJuS2V5IH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8IS0tIEhlbHBlciBUZXh0IC0tPlxuICAgIDxtYXQtaGludCAqbmdJZj1cIiEoISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdCkpICYmIGhpbnRUZXh0XCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcicgOiBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZH1cIlxuICAgID5cbiAgICAgIHt7IGhpbnRUZXh0IHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtaGludD5cblxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
@@ -72,7 +72,7 @@ export class DateRangeDatepickerComponent {
72
72
  }
73
73
  }
74
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangeDatepickerComponent, isStandalone: true, selector: "app-mat-range-datepicker", inputs: { label: "label", placeholder: "placeholder", value: "value", defaultValue: "defaultValue", key: "key", submit: "submit", clearValue: "clearValue", errorMessage: "errorMessage", onePlaceholder: "onePlaceholder", hintText: "hintText" }, outputs: { resetForm: "resetForm", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "min", first: true, predicate: ["min"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex_column relative mat-date-range-input\"\r\n [formGroup]=\"dateRangeForm\"\r\n>\r\n <div class=\"w-100\">\r\n <mat-label>\r\n {{(label || '') | translate}}\r\n </mat-label>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input formControlName=\"startDate\"\r\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matStartDate #min\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\r\n <input formControlName=\"endDate\"\r\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matEndDate #max\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\r\n </mat-date-range-input>\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'cancel'\"\r\n (buttonClick)=\"selectionChange.emit([null, null])\"\r\n class=\"default-form-icon-color\"\r\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\r\n ></i-tech-icon-button>\r\n <i-tech-icon-button matSuffix [iconName]=\"'date_range'\" (buttonClick)=\"picker.open()\" class=\"default-form-icon-color\"></i-tech-icon-button>\r\n <mat-date-range-picker #picker (closed)=\"isOpen = false;clickForFocusOut()\" (opened)=\"isOpen = true\"></mat-date-range-picker>\r\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{hintText}}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }] }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangeDatepickerComponent, isStandalone: true, selector: "app-mat-range-datepicker", inputs: { label: "label", placeholder: "placeholder", value: "value", defaultValue: "defaultValue", key: "key", submit: "submit", clearValue: "clearValue", errorMessage: "errorMessage", onePlaceholder: "onePlaceholder", hintText: "hintText" }, outputs: { resetForm: "resetForm", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "min", first: true, predicate: ["min"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex_column relative mat-date-range-input\"\n [formGroup]=\"dateRangeForm\"\n>\n <div class=\"w-100\">\n <mat-label>\n {{(label || '') | translate}}\n </mat-label>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\n <mat-date-range-input [rangePicker]=\"picker\">\n <input formControlName=\"startDate\"\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matStartDate #min\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\n <input formControlName=\"endDate\"\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matEndDate #max\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\n </mat-date-range-input>\n <i-tech-icon-button matSuffix\n [iconName]=\"'cancel'\"\n (buttonClick)=\"selectionChange.emit([null, null])\"\n class=\"default-form-icon-color\"\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\n ></i-tech-icon-button>\n <i-tech-icon-button matSuffix [iconName]=\"'date_range'\" (buttonClick)=\"picker.open()\" class=\"default-form-icon-color\"></i-tech-icon-button>\n <mat-date-range-picker #picker (closed)=\"isOpen = false;clickForFocusOut()\" (opened)=\"isOpen = true\"></mat-date-range-picker>\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{hintText}}</mat-hint>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }] }); }
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeDatepickerComponent, decorators: [{
78
78
  type: Component,
@@ -83,7 +83,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
83
83
  NgClass, NgIf,
84
84
  TranslateModule,
85
85
  IconButtonComponent, DateMaskDirective
86
- ], standalone: true, template: "<div class=\"flex_column relative mat-date-range-input\"\r\n [formGroup]=\"dateRangeForm\"\r\n>\r\n <div class=\"w-100\">\r\n <mat-label>\r\n {{(label || '') | translate}}\r\n </mat-label>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input formControlName=\"startDate\"\r\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matStartDate #min\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\r\n <input formControlName=\"endDate\"\r\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matEndDate #max\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\r\n </mat-date-range-input>\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'cancel'\"\r\n (buttonClick)=\"selectionChange.emit([null, null])\"\r\n class=\"default-form-icon-color\"\r\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\r\n ></i-tech-icon-button>\r\n <i-tech-icon-button matSuffix [iconName]=\"'date_range'\" (buttonClick)=\"picker.open()\" class=\"default-form-icon-color\"></i-tech-icon-button>\r\n <mat-date-range-picker #picker (closed)=\"isOpen = false;clickForFocusOut()\" (opened)=\"isOpen = true\"></mat-date-range-picker>\r\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{hintText}}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n" }]
86
+ ], standalone: true, template: "<div class=\"flex_column relative mat-date-range-input\"\n [formGroup]=\"dateRangeForm\"\n>\n <div class=\"w-100\">\n <mat-label>\n {{(label || '') | translate}}\n </mat-label>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\n <mat-date-range-input [rangePicker]=\"picker\">\n <input formControlName=\"startDate\"\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matStartDate #min\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\n <input formControlName=\"endDate\"\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matEndDate #max\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\n </mat-date-range-input>\n <i-tech-icon-button matSuffix\n [iconName]=\"'cancel'\"\n (buttonClick)=\"selectionChange.emit([null, null])\"\n class=\"default-form-icon-color\"\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\n ></i-tech-icon-button>\n <i-tech-icon-button matSuffix [iconName]=\"'date_range'\" (buttonClick)=\"picker.open()\" class=\"default-form-icon-color\"></i-tech-icon-button>\n <mat-date-range-picker #picker (closed)=\"isOpen = false;clickForFocusOut()\" (opened)=\"isOpen = true\"></mat-date-range-picker>\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{hintText}}</mat-hint>\n </mat-form-field>\n</div>\n" }]
87
87
  }], propDecorators: { label: [{
88
88
  type: Input
89
89
  }], placeholder: [{
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
115
115
  type: ViewChild,
116
116
  args: ['min']
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBcUIsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7OztBQWV2RSxNQUFNLE9BQU8sNEJBQTRCO0lBYnpDO1FBbUJXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxD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SyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBQyxPQUFPLENBQUMsQ0FBQTtRQUM3QixDQUFDO0lBQ0gsQ0FBQzsrR0F2RVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIscWxCQy9CekMsNnJGQTRDQSwyQ0R0Qkksa0JBQWtCLG1nQkFDbEIsbUJBQW1CLG0yQkFDbkIsbUJBQW1CLGtuQkFDbkIsT0FBTyxvRkFBRSxJQUFJLDRGQUNiLGVBQWUsNEZBQ2YsbUJBQW1CLGlLQUFFLGlCQUFpQjs7NEZBSTdCLDRCQUE0QjtrQkFieEMsU0FBUzsrQkFDRSwwQkFBMEIsV0FFM0I7d0JBQ1Asa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsT0FBTyxFQUFFLElBQUk7d0JBQ2IsZUFBZTt3QkFDZixtQkFBbUIsRUFBRSxpQkFBaUI7cUJBQ3ZDLGNBQ1csSUFBSTs4QkFHUCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNjLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRCxHQUFHO3NCQUFwQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0RGF0ZXBpY2tlck1vZHVsZSwgTWF0RGF0ZVJhbmdlUGlja2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xyXG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbkJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0RhdGVNYXNrRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9kYXRlLW1hc2suZGlyZWN0aXZlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tYXQtcmFuZ2UtZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ0NsYXNzLCBOZ0lmLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCwgRGF0ZU1hc2tEaXJlY3RpdmVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZURhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogQXJyYXk8c3RyaW5nPjtcclxuICBASW5wdXQoKSB2YWx1ZT86IEFycmF5PHN0cmluZyB8IG51bGw+O1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZT86IEFycmF5PERhdGU+O1xyXG4gIEBJbnB1dCgpIGtleT86IHtzdGFydDogc3RyaW5nLCBlbmQ6IHN0cmluZywgdGl0bGU6IHN0cmluZ307XHJcbiAgQElucHV0KCkgc3VibWl0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2xlYXJWYWx1ZSA9IHRydWU7XHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgQElucHV0KCkgb25lUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGludFRleHQ6IHN0cmluZyA9ICdNTS9ERC9ZWVlZIC0gTU0vREQvWVlZWSc7XHJcbiAgQE91dHB1dCgpIHJlc2V0Rm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKCdwaWNrZXInKSBwaWNrZXIhOiBNYXREYXRlUmFuZ2VQaWNrZXI8YW55PjtcclxuICBAVmlld0NoaWxkKCdtaW4nKSBtaW4hOiBFbGVtZW50UmVmO1xyXG4gIGlzT3BlbiA9IGZhbHNlO1xyXG5cclxuICBkYXRlUmFuZ2VGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xyXG4gICAgc3RhcnREYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTApXSksXHJcbiAgICBlbmREYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTApXSksXHJcbiAgfSk7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWU/Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kZWZhdWx0VmFsdWVbMF0sXHJcbiAgICAgICAgICBlbmREYXRlOiB0aGlzLmRlZmF1bHRWYWx1ZVsxXVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10/LmN1cnJlbnRWYWx1ZSAmJiAhKGNoYW5nZXNbJ3ZhbHVlJ10uY3VycmVudFZhbHVlWzBdKSkge1xyXG4gICAgICAgIGlmICh0aGlzLnBpY2tlcikge1xyXG4gICAgICAgICAgdGhpcy5kYXRlUmFuZ2VGb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgICB0aGlzLnBpY2tlci5zZWxlY3QobnVsbClcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc1sndmFsdWUnXSAmJiB0aGlzLnZhbHVlPy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmRhdGVSYW5nZUZvcm0uc2V0VmFsdWUoe1xyXG4gICAgICAgICAgc3RhcnREYXRlOiBuZXcgRGF0ZSh0aGlzLnZhbHVlWzBdIHx8ICcnKSxcclxuICAgICAgICAgIGVuZERhdGU6IG5ldyBEYXRlKHRoaXMudmFsdWVbMV0gfHwgJycpXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSwgMTApXHJcbiAgfVxyXG5cclxuICBjbGlja0ZvckZvY3VzT3V0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubWluLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgdGhpcy5taW4ubmF0aXZlRWxlbWVudC5ibHVyKCk7XHJcbiAgICB9LDEyMClcclxuICB9XHJcblxyXG4gIGN1c3RvbUVycm9yU3RhdGVNYXRjaGVyID0ge1xyXG4gICAgaXNFcnJvclN0YXRlOiAoY29udHJvbDogYW55LCBmb3JtOiBhbnkpOiBib29sZWFuID0+IHtcclxuICAgICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIHRoaXMuc3VibWl0KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBzZXREYXRlKHZhbHVlOiBBcnJheTxzdHJpbmcgfCBudWxsPiwgZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIGVsZW1lbnQuYmx1cigpO1xyXG4gIH1cclxuXHJcbiAga2V5RXZlbnRIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LHZhbHVlOiBBcnJheTxzdHJpbmcgfCBudWxsPiwgZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLnNldERhdGUodmFsdWUsZWxlbWVudClcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4X2NvbHVtbiByZWxhdGl2ZSBtYXQtZGF0ZS1yYW5nZS1pbnB1dFwiXHJcbiAgICAgW2Zvcm1Hcm91cF09XCJkYXRlUmFuZ2VGb3JtXCJcclxuPlxyXG4gICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICAgICAge3sobGFiZWwgfHwgJycpIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgW25nQ2xhc3NdPVwieydvcGVuZWRfY2FsZW5kYXInOiBpc09wZW59XCI+XHJcbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiIChwbGFjZWhvbGRlciA/IHBsYWNlaG9sZGVyWzBdIDogJ1N0YXJ0IERhdGUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwia2V5ID8ga2V5LnRpdGxlIDogICdEYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWFjY2Vzc0tleV09XCJrZXkgPyBrZXkuc3RhcnQgOiAnbWluU3RhcnREYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBhcmVudEtleV09XCJrZXkgPyAoa2V5LnN0YXJ0ICsgJ18nICsga2V5LmVuZCkgOiAnbWluU3RhcnREYXRlX21heEVuZERhdGUnXCJcclxuICAgICAgICAgICAgICAgICAgIG1hdFN0YXJ0RGF0ZSAjbWluXHJcbiAgICAgICAgICAgICAgICAgICBkYXRlTWFza1xyXG4gICAgICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcclxuICAgICAgICAgICAgICAgICAgIFtyYW5nZUZvcm1Db250cm9sXT1cImRhdGVSYW5nZUZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddXCJcclxuICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImtleUV2ZW50SGFuZGxlcigkZXZlbnQsW21pbi52YWx1ZSwgbWF4LnZhbHVlIHx8IG51bGxdLG1pbilcIlxyXG4gICAgICAgICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwic2V0RGF0ZShbbWluLnZhbHVlLCBtYXgudmFsdWUgfHwgbnVsbF0sbWluKVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKHBsYWNlaG9sZGVyICA/IHBsYWNlaG9sZGVyWzFdIDogJ0VuZCBEYXRlJylcIlxyXG4gICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImtleSA/IGtleS50aXRsZSA6ICAnRGF0ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hY2Nlc3NLZXldPVwia2V5ID8ga2V5LmVuZCA6ICdtYXhFbmREYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBhcmVudEtleV09XCJrZXkgPyAoa2V5LnN0YXJ0ICsgJ18nICsga2V5LmVuZCkgOiAnbWluU3RhcnREYXRlX21heEVuZERhdGUnXCJcclxuICAgICAgICAgICAgICAgICAgIG1hdEVuZERhdGUgI21heFxyXG4gICAgICAgICAgICAgICAgICAgZGF0ZU1hc2tcclxuICAgICAgICAgICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJjdXN0b21FcnJvclN0YXRlTWF0Y2hlclwiXHJcbiAgICAgICAgICAgICAgICAgICBbcmFuZ2VGb3JtQ29udHJvbF09XCJkYXRlUmFuZ2VGb3JtLmNvbnRyb2xzWydlbmREYXRlJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwia2V5RXZlbnRIYW5kbGVyKCRldmVudCxbbWluLnZhbHVlLCBtYXgudmFsdWUgfHwgbnVsbF0sbWF4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJzZXREYXRlKFttaW4udmFsdWUsIG1heC52YWx1ZSB8fCBudWxsXSxtYXgpXCI+XHJcbiAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cclxuICAgICAgICA8aS10ZWNoLWljb24tYnV0dG9uIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgICAgW2ljb25OYW1lXT1cIidjYW5jZWwnXCJcclxuICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJzZWxlY3Rpb25DaGFuZ2UuZW1pdChbbnVsbCwgbnVsbF0pXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1mb3JtLWljb24tY29sb3JcIlxyXG4gICAgICAgICAgICAgKm5nSWY9XCJkYXRlUmFuZ2VGb3JtLmdldCgnc3RhcnREYXRlJyk/LnZhbHVlICYmIHRoaXMuZGF0ZVJhbmdlRm9ybS5nZXQoJ2VuZERhdGUnKT8udmFsdWVcIlxyXG4gICAgICAgID48L2ktdGVjaC1pY29uLWJ1dHRvbj5cclxuICAgICAgICA8aS10ZWNoLWljb24tYnV0dG9uIG1hdFN1ZmZpeCBbaWNvbk5hbWVdPVwiJ2RhdGVfcmFuZ2UnXCIgKGJ1dHRvbkNsaWNrKT1cInBpY2tlci5vcGVuKClcIiBjbGFzcz1cImRlZmF1bHQtZm9ybS1pY29uLWNvbG9yXCI+PC9pLXRlY2gtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyIChjbG9zZWQpPVwiaXNPcGVuID0gZmFsc2U7Y2xpY2tGb3JGb2N1c091dCgpXCIgKG9wZW5lZCk9XCJpc09wZW4gPSB0cnVlXCI+PC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XHJcbiAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiaGludFRleHQgJiYgIWVycm9yTWVzc2FnZVwiPnt7aGludFRleHR9fTwvbWF0LWhpbnQ+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj5cclxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBcUIsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7OztBQWV2RSxNQUFNLE9BQU8sNEJBQTRCO0lBYnpDO1FBbUJXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxD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SyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBQyxPQUFPLENBQUMsQ0FBQTtRQUM3QixDQUFDO0lBQ0gsQ0FBQzsrR0F2RVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIscWxCQy9CekMscW1GQTRDQSwyQ0R0Qkksa0JBQWtCLG1nQkFDbEIsbUJBQW1CLG0yQkFDbkIsbUJBQW1CLGtuQkFDbkIsT0FBTyxvRkFBRSxJQUFJLDRGQUNiLGVBQWUsNEZBQ2YsbUJBQW1CLGlLQUFFLGlCQUFpQjs7NEZBSTdCLDRCQUE0QjtrQkFieEMsU0FBUzsrQkFDRSwwQkFBMEIsV0FFM0I7d0JBQ1Asa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsT0FBTyxFQUFFLElBQUk7d0JBQ2IsZUFBZTt3QkFDZixtQkFBbUIsRUFBRSxpQkFBaUI7cUJBQ3ZDLGNBQ1csSUFBSTs4QkFHUCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNjLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRCxHQUFHO3NCQUFwQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERhdGVwaWNrZXJNb2R1bGUsIE1hdERhdGVSYW5nZVBpY2tlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXJcIjtcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7SWNvbkJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtEYXRlTWFza0RpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWF0LXJhbmdlLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTmdDbGFzcywgTmdJZixcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCwgRGF0ZU1hc2tEaXJlY3RpdmVcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogQXJyYXk8c3RyaW5nPjtcbiAgQElucHV0KCkgdmFsdWU/OiBBcnJheTxzdHJpbmcgfCBudWxsPjtcbiAgQElucHV0KCkgZGVmYXVsdFZhbHVlPzogQXJyYXk8RGF0ZT47XG4gIEBJbnB1dCgpIGtleT86IHtzdGFydDogc3RyaW5nLCBlbmQ6IHN0cmluZywgdGl0bGU6IHN0cmluZ307XG4gIEBJbnB1dCgpIHN1Ym1pdCA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGVhclZhbHVlID0gdHJ1ZTtcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIG9uZVBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBoaW50VGV4dDogc3RyaW5nID0gJ01NL0REL1lZWVkgLSBNTS9ERC9ZWVlZJztcbiAgQE91dHB1dCgpIHJlc2V0Rm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpIHBpY2tlciE6IE1hdERhdGVSYW5nZVBpY2tlcjxhbnk+O1xuICBAVmlld0NoaWxkKCdtaW4nKSBtaW4hOiBFbGVtZW50UmVmO1xuICBpc09wZW4gPSBmYWxzZTtcblxuICBkYXRlUmFuZ2VGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHN0YXJ0RGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwKV0pLFxuICAgIGVuZERhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxMCldKSxcbiAgfSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kZWZhdWx0VmFsdWVbMF0sXG4gICAgICAgICAgZW5kRGF0ZTogdGhpcy5kZWZhdWx0VmFsdWVbMV1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10/LmN1cnJlbnRWYWx1ZSAmJiAhKGNoYW5nZXNbJ3ZhbHVlJ10uY3VycmVudFZhbHVlWzBdKSkge1xuICAgICAgICBpZiAodGhpcy5waWNrZXIpIHtcbiAgICAgICAgICB0aGlzLmRhdGVSYW5nZUZvcm0ucmVzZXQoKTtcbiAgICAgICAgICB0aGlzLnBpY2tlci5zZWxlY3QobnVsbClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzWyd2YWx1ZSddICYmIHRoaXMudmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmRhdGVSYW5nZUZvcm0uc2V0VmFsdWUoe1xuICAgICAgICAgIHN0YXJ0RGF0ZTogbmV3IERhdGUodGhpcy52YWx1ZVswXSB8fCAnJyksXG4gICAgICAgICAgZW5kRGF0ZTogbmV3IERhdGUodGhpcy52YWx1ZVsxXSB8fCAnJylcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LCAxMClcbiAgfVxuXG4gIGNsaWNrRm9yRm9jdXNPdXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1pbi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB0aGlzLm1pbi5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9LDEyMClcbiAgfVxuXG4gIGN1c3RvbUVycm9yU3RhdGVNYXRjaGVyID0ge1xuICAgIGlzRXJyb3JTdGF0ZTogKGNvbnRyb2w6IGFueSwgZm9ybTogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgdGhpcy5zdWJtaXQpO1xuICAgIH1cbiAgfTtcblxuICBzZXREYXRlKHZhbHVlOiBBcnJheTxzdHJpbmcgfCBudWxsPiwgZWxlbWVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgZWxlbWVudC5ibHVyKCk7XG4gIH1cblxuICBrZXlFdmVudEhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQsdmFsdWU6IEFycmF5PHN0cmluZyB8IG51bGw+LCBlbGVtZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5zZXREYXRlKHZhbHVlLGVsZW1lbnQpXG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4X2NvbHVtbiByZWxhdGl2ZSBtYXQtZGF0ZS1yYW5nZS1pbnB1dFwiXG4gICAgIFtmb3JtR3JvdXBdPVwiZGF0ZVJhbmdlRm9ybVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICB7eyhsYWJlbCB8fCAnJykgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L21hdC1sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBbbmdDbGFzc109XCJ7J29wZW5lZF9jYWxlbmRhcic6IGlzT3Blbn1cIj5cbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIlxuICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIgKHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXJbMF0gOiAnU3RhcnQgRGF0ZScpXCJcbiAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwia2V5ID8ga2V5LnRpdGxlIDogICdEYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hY2Nlc3NLZXldPVwia2V5ID8ga2V5LnN0YXJ0IDogJ21pblN0YXJ0RGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGFyZW50S2V5XT1cImtleSA/IChrZXkuc3RhcnQgKyAnXycgKyBrZXkuZW5kKSA6ICdtaW5TdGFydERhdGVfbWF4RW5kRGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgIG1hdFN0YXJ0RGF0ZSAjbWluXG4gICAgICAgICAgICAgICAgICAgZGF0ZU1hc2tcbiAgICAgICAgICAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiY3VzdG9tRXJyb3JTdGF0ZU1hdGNoZXJcIlxuICAgICAgICAgICAgICAgICAgIFtyYW5nZUZvcm1Db250cm9sXT1cImRhdGVSYW5nZUZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddXCJcbiAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJrZXlFdmVudEhhbmRsZXIoJGV2ZW50LFttaW4udmFsdWUsIG1heC52YWx1ZSB8fCBudWxsXSxtaW4pXCJcbiAgICAgICAgICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJzZXREYXRlKFttaW4udmFsdWUsIG1heC52YWx1ZSB8fCBudWxsXSxtaW4pXCI+XG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlciAgPyBwbGFjZWhvbGRlclsxXSA6ICdFbmQgRGF0ZScpXCJcbiAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwia2V5ID8ga2V5LnRpdGxlIDogICdEYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hY2Nlc3NLZXldPVwia2V5ID8ga2V5LmVuZCA6ICdtYXhFbmREYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYXJlbnRLZXldPVwia2V5ID8gKGtleS5zdGFydCArICdfJyArIGtleS5lbmQpIDogJ21pblN0YXJ0RGF0ZV9tYXhFbmREYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgbWF0RW5kRGF0ZSAjbWF4XG4gICAgICAgICAgICAgICAgICAgZGF0ZU1hc2tcbiAgICAgICAgICAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiY3VzdG9tRXJyb3JTdGF0ZU1hdGNoZXJcIlxuICAgICAgICAgICAgICAgICAgIFtyYW5nZUZvcm1Db250cm9sXT1cImRhdGVSYW5nZUZvcm0uY29udHJvbHNbJ2VuZERhdGUnXVwiXG4gICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwia2V5RXZlbnRIYW5kbGVyKCRldmVudCxbbWluLnZhbHVlLCBtYXgudmFsdWUgfHwgbnVsbF0sbWF4KVwiXG4gICAgICAgICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwic2V0RGF0ZShbbWluLnZhbHVlLCBtYXgudmFsdWUgfHwgbnVsbF0sbWF4KVwiPlxuICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICA8aS10ZWNoLWljb24tYnV0dG9uIG1hdFN1ZmZpeFxuICAgICAgICAgICAgIFtpY29uTmFtZV09XCInY2FuY2VsJ1wiXG4gICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInNlbGVjdGlvbkNoYW5nZS5lbWl0KFtudWxsLCBudWxsXSlcIlxuICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1mb3JtLWljb24tY29sb3JcIlxuICAgICAgICAgICAgICpuZ0lmPVwiZGF0ZVJhbmdlRm9ybS5nZXQoJ3N0YXJ0RGF0ZScpPy52YWx1ZSAmJiB0aGlzLmRhdGVSYW5nZUZvcm0uZ2V0KCdlbmREYXRlJyk/LnZhbHVlXCJcbiAgICAgICAgPjwvaS10ZWNoLWljb24tYnV0dG9uPlxuICAgICAgICA8aS10ZWNoLWljb24tYnV0dG9uIG1hdFN1ZmZpeCBbaWNvbk5hbWVdPVwiJ2RhdGVfcmFuZ2UnXCIgKGJ1dHRvbkNsaWNrKT1cInBpY2tlci5vcGVuKClcIiBjbGFzcz1cImRlZmF1bHQtZm9ybS1pY29uLWNvbG9yXCI+PC9pLXRlY2gtaWNvbi1idXR0b24+XG4gICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlciAoY2xvc2VkKT1cImlzT3BlbiA9IGZhbHNlO2NsaWNrRm9yRm9jdXNPdXQoKVwiIChvcGVuZWQpPVwiaXNPcGVuID0gdHJ1ZVwiPjwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxuICAgICAgICA8bWF0LWhpbnQgKm5nSWY9XCJoaW50VGV4dCAmJiAhZXJyb3JNZXNzYWdlXCI+e3toaW50VGV4dH19PC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
@@ -18,7 +18,7 @@ export class IconButtonComponent {
18
18
  }
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IconButtonComponent, isStandalone: true, selector: "i-tech-icon-button", inputs: { size: "size", type: "type", iconSvg: "iconSvg", iconName: "iconName", tooltip: "tooltip", disabled: "disabled" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\r\n *ngIf=\"['tonal','standard'].includes(type)\"\r\n mat-icon-button\r\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"type === 'filled'\"\r\n mat-fab\r\n class=\"filled\"\r\n [ngClass]=\"{small: size === 'small'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [color]=\"'primary'\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IconButtonComponent, isStandalone: true, selector: "i-tech-icon-button", inputs: { size: "size", type: "type", iconSvg: "iconSvg", iconName: "iconName", tooltip: "tooltip", disabled: "disabled" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n *ngIf=\"['tonal','standard'].includes(type)\"\n mat-icon-button\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n\n<button\n *ngIf=\"type === 'filled'\"\n mat-fab\n class=\"filled\"\n [ngClass]=\"{small: size === 'small'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [color]=\"'primary'\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconButtonComponent, decorators: [{
24
24
  type: Component,
@@ -30,7 +30,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30
30
  MatIcon,
31
31
  MatFabButton,
32
32
  NgIf
33
- ], standalone: true, template: "<button\r\n *ngIf=\"['tonal','standard'].includes(type)\"\r\n mat-icon-button\r\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"type === 'filled'\"\r\n mat-fab\r\n class=\"filled\"\r\n [ngClass]=\"{small: size === 'small'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [color]=\"'primary'\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n" }]
33
+ ], standalone: true, template: "<button\n *ngIf=\"['tonal','standard'].includes(type)\"\n mat-icon-button\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n\n<button\n *ngIf=\"type === 'filled'\"\n mat-fab\n class=\"filled\"\n [ngClass]=\"{small: size === 'small'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [color]=\"'primary'\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n" }]
34
34
  }], propDecorators: { size: [{
35
35
  type: Input
36
36
  }], type: [{
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
46
46
  }], buttonClick: [{
47
47
  type: Output
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBaUIvQyxNQUFNLE9BQU8sbUJBQW1CO0lBZmhDO1FBZ0JXLFNBQUksR0FBdUIsUUFBUSxDQUFDO1FBQ3BDLFNBQUksR0FBb0MsT0FBTyxDQUFDO1FBSy9DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQU9sRDtJQUxDLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7K0dBYlUsbUJBQW1CO21HQUFuQixtQkFBbUIsbVBDdEJoQywyZ0NBMkJBLDBERGZJLGFBQWEsNkZBQ2IsT0FBTyxvRkFDUCxVQUFVLGdSQUNWLGVBQWUsNEZBQ2YsT0FBTywySUFDUCxZQUFZLDJHQUNaLElBQUk7OzRGQUlLLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxvQkFBb0IsV0FHckI7d0JBQ1AsYUFBYTt3QkFDYixPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osSUFBSTtxQkFDTCxjQUNXLElBQUk7OEJBR1AsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0RmFiQnV0dG9uLCBNYXRJY29uQnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge01hdEljb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ktdGVjaC1pY29uLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaWNvbi1idXR0b24uY29tcG9uZW50LnNjc3MnLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEljb25CdXR0b24sXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXRGYWJCdXR0b24sXHJcbiAgICBOZ0lmXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJY29uQnV0dG9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzaXplOiAnbWVkaXVtJyB8ICdzbWFsbCcgPSAnbWVkaXVtJztcclxuICBASW5wdXQoKSB0eXBlOiAnc3RhbmRhcmQnIHwgJ2ZpbGxlZCcgfCAndG9uYWwnID0gJ3RvbmFsJztcclxuICBASW5wdXQoKSBpY29uU3ZnITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25OYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJbJ3RvbmFsJywnc3RhbmRhcmQnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie3NtYWxsOiBzaXplID09PSAnc21hbGwnLCB0b25hbDogdHlwZSA9PT0gJ3RvbmFsJywgc3RhbmRhcmQ6IHR5cGUgPT09ICdzdGFuZGFyZCd9XCJcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiF0b29sdGlwXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgZmFsc2VcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxyXG4+XHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uU3ZnXCIgW3N2Z0ljb25dPVwiaWNvblN2Z1wiPjwvbWF0LWljb24+XHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uTmFtZVwiPnt7aWNvbk5hbWV9fTwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG5cclxuPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2ZpbGxlZCdcIlxyXG4gICAgICAgIG1hdC1mYWJcclxuICAgICAgICBjbGFzcz1cImZpbGxlZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie3NtYWxsOiBzaXplID09PSAnc21hbGwnfVwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIhdG9vbHRpcFwiXHJcbiAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGZhbHNlXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcclxuPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblN2Z1wiIFtzdmdJY29uXT1cImljb25TdmdcIj48L21hdC1pY29uPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvbk5hbWVcIj57e2ljb25OYW1lfX08L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBaUIvQyxNQUFNLE9BQU8sbUJBQW1CO0lBZmhDO1FBZ0JXLFNBQUksR0FBdUIsUUFBUSxDQUFDO1FBQ3BDLFNBQUksR0FBb0MsT0FBTyxDQUFDO1FBSy9DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQU9sRDtJQUxDLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7K0dBYlUsbUJBQW1CO21HQUFuQixtQkFBbUIsbVBDdEJoQyxxOUJBMkJBLDBERGZJLGFBQWEsNkZBQ2IsT0FBTyxvRkFDUCxVQUFVLGdSQUNWLGVBQWUsNEZBQ2YsT0FBTywySUFDUCxZQUFZLDJHQUNaLElBQUk7OzRGQUlLLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxvQkFBb0IsV0FHckI7d0JBQ1AsYUFBYTt3QkFDYixPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osSUFBSTtxQkFDTCxjQUNXLElBQUk7OEJBR1AsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEZhYkJ1dHRvbiwgTWF0SWNvbkJ1dHRvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaS10ZWNoLWljb24tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb25CdXR0b24sXG4gICAgTmdDbGFzcyxcbiAgICBNYXRUb29sdGlwLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIE1hdEZhYkJ1dHRvbixcbiAgICBOZ0lmXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWNvbkJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNpemU6ICdtZWRpdW0nIHwgJ3NtYWxsJyA9ICdtZWRpdW0nO1xuICBASW5wdXQoKSB0eXBlOiAnc3RhbmRhcmQnIHwgJ2ZpbGxlZCcgfCAndG9uYWwnID0gJ3RvbmFsJztcbiAgQElucHV0KCkgaWNvblN2ZyE6IHN0cmluZztcbiAgQElucHV0KCkgaWNvbk5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvb2x0aXAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkITogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIlsndG9uYWwnLCdzdGFuZGFyZCddLmluY2x1ZGVzKHR5cGUpXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtuZ0NsYXNzXT1cIntzbWFsbDogc2l6ZSA9PT0gJ3NtYWxsJywgdG9uYWw6IHR5cGUgPT09ICd0b25hbCcsIHN0YW5kYXJkOiB0eXBlID09PSAnc3RhbmRhcmQnfVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiF0b29sdGlwXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblN2Z1wiIFtzdmdJY29uXT1cImljb25TdmdcIj48L21hdC1pY29uPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25OYW1lXCI+e3tpY29uTmFtZX19PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48YnV0dG9uXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2ZpbGxlZCdcIlxuICAgICAgICBtYXQtZmFiXG4gICAgICAgIGNsYXNzPVwiZmlsbGVkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie3NtYWxsOiBzaXplID09PSAnc21hbGwnfVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiF0b29sdGlwXCJcbiAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25TdmdcIiBbc3ZnSWNvbl09XCJpY29uU3ZnXCI+PC9tYXQtaWNvbj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uTmFtZVwiPnt7aWNvbk5hbWV9fTwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { ButtonType } from "../../interfaces/button-types.enum";
3
+ import { DropdownItemIcon } from "../../interfaces/dropdown-selection.constants";
4
+ import { MatMenu, MatMenuItem, MatMenuTrigger } from "@angular/material/menu";
5
+ import { MatIcon } from "@angular/material/icon";
6
+ import { NgClass, NgForOf, NgIf } from "@angular/common";
7
+ import { TranslateModule } from "@ngx-translate/core";
8
+ import { ButtonComponent } from "../button/button.component";
9
+ import { MatLabel } from "@angular/material/form-field";
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngx-translate/core";
12
+ export class MenuComponent {
13
+ constructor() {
14
+ this.positionX = 'before';
15
+ this.menuOptions = [];
16
+ this.emitEvent = new EventEmitter();
17
+ this.ButtonType = ButtonType;
18
+ this.DropdownItemIcon = DropdownItemIcon;
19
+ this.matMenuState = false;
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "i-tech-menu", inputs: { text: "text", dataName: "dataName", containerClass: "containerClass", positionX: "positionX", menuOptions: "menuOptions" }, outputs: { emitEvent: "emitEvent" }, ngImport: i0, template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}mat-menu{height:max-content}\n"], dependencies: [{ kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "i-tech-button", inputs: ["text", "data_cy", "fontIcon", "svgIcon", "type", "customClass", "submit", "disabled", "activated", "color"], outputs: ["buttonClick"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: "i-tech-menu", standalone: true, imports: [
27
+ MatMenuTrigger,
28
+ MatMenu,
29
+ MatIcon,
30
+ NgIf,
31
+ NgForOf,
32
+ MatMenuItem,
33
+ TranslateModule,
34
+ NgClass,
35
+ ButtonComponent,
36
+ MatLabel
37
+ ], template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}mat-menu{height:max-content}\n"] }]
38
+ }], propDecorators: { text: [{
39
+ type: Input
40
+ }], dataName: [{
41
+ type: Input
42
+ }], containerClass: [{
43
+ type: Input
44
+ }], positionX: [{
45
+ type: Input
46
+ }], menuOptions: [{
47
+ type: Input
48
+ }], emitEvent: [{
49
+ type: Output
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUF3QixNQUFNLCtDQUErQyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7OztBQW9CdEQsTUFBTSxPQUFPLGFBQWE7SUFsQjFCO1FBc0JhLGNBQVMsR0FBa0IsUUFBUSxDQUFDO1FBQ3BDLGdCQUFXLEdBQW9HLEVBQUUsQ0FBQztRQUNqSCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMzQixlQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLHFCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3ZELGlCQUFZLEdBQUcsS0FBSyxDQUFDO0tBQ3hCOytHQVZZLGFBQWE7bUdBQWIsYUFBYSxrUEM1QjFCLHU0QkFvQkEsc0pETkksY0FBYyxxU0FDZCxPQUFPLDJRQUNQLE9BQU8sMklBQ1AsSUFBSSw2RkFDSixPQUFPLG1IQUNQLFdBQVcscUlBQ1gsZUFBZSw0RkFDZixPQUFPLG9GQUNQLGVBQWUsMk1BQ2YsUUFBUTs7NEZBS0MsYUFBYTtrQkFsQnpCLFNBQVM7K0JBQ0ksYUFBYSxjQUNYLElBQUksV0FDVDt3QkFDUCxjQUFjO3dCQUNkLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixRQUFRO3FCQUNUOzhCQUtVLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtCdXR0b25UeXBlfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9idXR0b24tdHlwZXMuZW51bVwiO1xuaW1wb3J0IHtEcm9wZG93bkl0ZW1JY29uLCBEcm9wZG93blNlbGVjdGlvblR5cGV9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2Ryb3Bkb3duLXNlbGVjdGlvbi5jb25zdGFudHNcIjtcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyLCBNZW51UG9zaXRpb25YfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7QnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0TGFiZWx9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImktdGVjaC1tZW51XCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdE1lbnVUcmlnZ2VyLFxuICAgIE1hdE1lbnUsXG4gICAgTWF0SWNvbixcbiAgICBOZ0lmLFxuICAgIE5nRm9yT2YsXG4gICAgTWF0TWVudUl0ZW0sXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE1hdExhYmVsXG4gIF0sXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL21lbnUuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdGV4dCE6IHN0cmluZztcbiAgICBASW5wdXQoKSBkYXRhTmFtZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBjb250YWluZXJDbGFzcyE6IHN0cmluZztcbiAgICBASW5wdXQoKSBwb3NpdGlvblg6IE1lbnVQb3NpdGlvblggPSAnYmVmb3JlJztcbiAgICBASW5wdXQoKSBtZW51T3B0aW9uczogQXJyYXk8e3ZhbHVlOiBzdHJpbmcsIHRleHQ6IHN0cmluZywgc3JjPzogc3RyaW5nLCBjbGFzcz86IHN0cmluZyx0eXBlPzogRHJvcGRvd25TZWxlY3Rpb25UeXBlfT4gPSBbXTtcbiAgICBAT3V0cHV0KCkgZW1pdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEJ1dHRvblR5cGUgPSBCdXR0b25UeXBlO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBEcm9wZG93bkl0ZW1JY29uID0gRHJvcGRvd25JdGVtSWNvbjtcbiAgICBtYXRNZW51U3RhdGUgPSBmYWxzZTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjdXN0b21fZHJvcGRvd25fY29udGFpbmVyXCJcbiAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImRhdGFOYW1lXCJcbiAgICAgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIlxuPlxuICAgIDxpLXRlY2gtYnV0dG9uXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiXG4gICAgICAgICAgICBbdHlwZV09XCJCdXR0b25UeXBlLk9VVExJTkVcIlxuICAgICAgICAgICAgW2ZvbnRJY29uXT1cIidrZXlib2FyZF9hcnJvd19kb3duJ1wiXG4gICAgICAgICAgICBbdGV4dF09XCIodGV4dCB8fCAnJykgXCJcbiAgICAgICAgICAgIChtZW51T3BlbmVkKT1cIm1hdE1lbnVTdGF0ZSAgPSB0cnVlXCJcbiAgICAgICAgICAgIChtZW51Q2xvc2VkKT1cIm1hdE1lbnVTdGF0ZSAgPSBmYWxzZVwiXG4gICAgICAgICAgICBbYWN0aXZhdGVkXT1cIm1hdE1lbnVTdGF0ZVwiXG4gICAgPjwvaS10ZWNoLWJ1dHRvbj5cbiAgICA8bWF0LW1lbnUgI2JlZm9yZU1lbnU9XCJtYXRNZW51XCIgW3hQb3NpdGlvbl09XCJwb3NpdGlvblhcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbWVudU9wdGlvbnNcIiAoY2xpY2spPVwiZW1pdEV2ZW50LmVtaXQob3B0aW9uLnZhbHVlKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib3B0aW9uLnR5cGVcIiBbc3ZnSWNvbl09XCJEcm9wZG93bkl0ZW1JY29uW29wdGlvbi50eXBlXVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWV1X2l0ZW1fbGFiZWxcIj57eyhvcHRpb24udGV4dCB8fCAnJykgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1tZW51PlxuPC9kaXY+XG4iXX0=
@@ -47,7 +47,7 @@ export class TextInputComponent {
47
47
  }
48
48
  }
49
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, isStandalone: true, selector: "i-tech-text-input", inputs: { inputData: "inputData" }, outputs: { focusOutEmitter: "focusOutEmitter" }, ngImport: i0, template: "<div *ngIf=\"inputData && ngControl\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\r\n }\"\r\n *ngIf=\"inputData.label\">\r\n {{ inputData.label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"inputData.required\" class=\"required-input\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\"\r\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\r\n >\r\n <!-- Leading Icon -->\r\n <mat-icon *ngIf=\"inputData.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"inputData.iconPrefixColor || null\"\r\n >{{ inputData.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"inputData.iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <!-- Input Field -->\r\n <input matInput\r\n *ngIf=\"!inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [mask]=\"inputData.mask || ''\"\r\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\r\n [inputMask]=\"inputData.inputMask!\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (blur)=\"onFocusOut()\"\r\n >\r\n\r\n <textarea matInput\r\n *ngIf=\"inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n ></textarea>\r\n\r\n <!-- Clear Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.clearable\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"clear()\"\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Trailing Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.iconSuffix\"\r\n [iconName]=\"inputData.iconSuffix\"\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n matSuffix\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\r\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\r\n {{ inputData.hint | translate }}\r\n </mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: InputMaskDirective, selector: "[inputMask]", inputs: ["inputMask", "min", "max", "float"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, isStandalone: true, selector: "i-tech-text-input", inputs: { inputData: "inputData" }, outputs: { focusOutEmitter: "focusOutEmitter" }, ngImport: i0, template: "<div *ngIf=\"inputData && ngControl\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\n }\"\n *ngIf=\"inputData.label\">\n {{ inputData.label | translate }}\n </mat-label>\n <span *ngIf=\"inputData.required\" class=\"required-input\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" class=\"w-100\"\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\n >\n <!-- Leading Icon -->\n <mat-icon *ngIf=\"inputData.iconPrefix\"\n matPrefix\n [ngClass]=\"{\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\n }\"\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [style.color]=\"inputData.iconPrefixColor || null\"\n >{{ inputData.iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"inputData.iconPrefixSvg\"\n ></mat-icon>\n\n <!-- Input Field -->\n <input matInput\n *ngIf=\"!inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [mask]=\"inputData.mask || ''\"\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\n [inputMask]=\"inputData.inputMask!\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n (blur)=\"onFocusOut()\"\n >\n\n <textarea matInput\n *ngIf=\"inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n ></textarea>\n\n <!-- Clear Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.clearable\"\n iconName=\"cancel\"\n matSuffix\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n (click)=\"clear()\"\n >\n </i-tech-icon-button>\n\n <!-- Trailing Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.iconSuffix\"\n [iconName]=\"inputData.iconSuffix\"\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n matSuffix\n >\n </i-tech-icon-button>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\n {{ inputData.hint | translate }}\n </mat-hint>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: InputMaskDirective, selector: "[inputMask]", inputs: ["inputMask", "min", "max", "float"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] }); }
51
51
  }
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, decorators: [{
53
53
  type: Component,
@@ -64,10 +64,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
64
64
  InputMaskDirective,
65
65
  NgxMaskDirective,
66
66
  MatFormFieldModule
67
- ], standalone: true, template: "<div *ngIf=\"inputData && ngControl\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\r\n }\"\r\n *ngIf=\"inputData.label\">\r\n {{ inputData.label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"inputData.required\" class=\"required-input\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\"\r\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\r\n >\r\n <!-- Leading Icon -->\r\n <mat-icon *ngIf=\"inputData.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"inputData.iconPrefixColor || null\"\r\n >{{ inputData.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"inputData.iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <!-- Input Field -->\r\n <input matInput\r\n *ngIf=\"!inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [mask]=\"inputData.mask || ''\"\r\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\r\n [inputMask]=\"inputData.inputMask!\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (blur)=\"onFocusOut()\"\r\n >\r\n\r\n <textarea matInput\r\n *ngIf=\"inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n ></textarea>\r\n\r\n <!-- Clear Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.clearable\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"clear()\"\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Trailing Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.iconSuffix\"\r\n [iconName]=\"inputData.iconSuffix\"\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n matSuffix\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\r\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\r\n {{ inputData.hint | translate }}\r\n </mat-hint>\r\n </mat-form-field>\r\n</div>\r\n" }]
67
+ ], standalone: true, template: "<div *ngIf=\"inputData && ngControl\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\n }\"\n *ngIf=\"inputData.label\">\n {{ inputData.label | translate }}\n </mat-label>\n <span *ngIf=\"inputData.required\" class=\"required-input\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" class=\"w-100\"\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\n >\n <!-- Leading Icon -->\n <mat-icon *ngIf=\"inputData.iconPrefix\"\n matPrefix\n [ngClass]=\"{\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\n }\"\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [style.color]=\"inputData.iconPrefixColor || null\"\n >{{ inputData.iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"inputData.iconPrefixSvg\"\n ></mat-icon>\n\n <!-- Input Field -->\n <input matInput\n *ngIf=\"!inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [mask]=\"inputData.mask || ''\"\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\n [inputMask]=\"inputData.inputMask!\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n (blur)=\"onFocusOut()\"\n >\n\n <textarea matInput\n *ngIf=\"inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n ></textarea>\n\n <!-- Clear Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.clearable\"\n iconName=\"cancel\"\n matSuffix\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n (click)=\"clear()\"\n >\n </i-tech-icon-button>\n\n <!-- Trailing Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.iconSuffix\"\n [iconName]=\"inputData.iconSuffix\"\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n matSuffix\n >\n </i-tech-icon-button>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\n {{ inputData.hint | translate }}\n </mat-hint>\n </mat-form-field>\n</div>\n" }]
68
68
  }], ctorParameters: () => [{ type: i1.InputService }], propDecorators: { inputData: [{
69
69
  type: Input
70
70
  }], focusOutEmitter: [{
71
71
  type: Output
72
72
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC90ZXh0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90ZXh0L3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWtCLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFzQjFDLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsSUFBYSxTQUFTLENBQUMsSUFBdUI7UUFDMUMsc0RBQXNEO1FBQ3RELElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFNRCxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUxwQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFxQnJELDRCQUF1QixHQUFHO1lBQ3RCLFlBQVksRUFBRSxDQUFDLE9BQVksRUFBRSxJQUFTLEVBQVcsRUFBRTtnQkFDL0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLENBQUM7U0FDSixDQUFDO1FBbkJFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDOytHQTlCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrS0NuQy9CLHFpSUEyRkEsMkNEdkVJLGVBQWUsNEZBQ2YsT0FBTyxvRkFDUCxPQUFPLDJJQUNQLFVBQVUsaVJBQ1YsUUFBUSxnVUFDUixtQkFBbUIsbXVCQUNuQixJQUFJLHdGQUNKLHlCQUF5Qiw4REFDekIsbUJBQW1CLGlLQUNuQixrQkFBa0Isc0dBQ2xCLGdCQUFnQixnakJBQ2hCLGtCQUFrQjs7NEZBSVQsa0JBQWtCO2tCQXBCOUIsU0FBUzsrQkFDRSxtQkFBbUIsV0FHcEI7d0JBQ1AsZUFBZTt3QkFDZixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixRQUFRO3dCQUNSLG1CQUFtQjt3QkFDbkIsSUFBSTt3QkFDSix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkIsY0FDVyxJQUFJO2lGQUdELFNBQVM7c0JBQXJCLEtBQUs7Z0JBVUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQ29udHJvbE5hbWUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW5wdXQuc2VydmljZSc7XHJcbmltcG9ydCB7QXBwSW5wdXRJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2FwcC1pbnB1dC5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQge0dlbmVyYXRlRXJyb3JNZXNzYWdlc1BpcGV9IGZyb20gXCIuLi8uLi9waXBlcy9nZW5lcmF0ZS1lcnJvci1tZXNzYWdlcy5waXBlXCI7XHJcbmltcG9ydCB7SWNvbkJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0lucHV0TWFza0RpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvaW5wdXQtbWFzay5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtOZ3hNYXNrRGlyZWN0aXZlfSBmcm9tIFwibmd4LW1hc2tcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaS10ZWNoLXRleHQtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIE1hdElucHV0LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlLFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIElucHV0TWFza0RpcmVjdGl2ZSxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dENvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBzZXQgaW5wdXREYXRhKGRhdGE6IEFwcElucHV0SW50ZXJmYWNlKSB7XHJcbiAgICAgICAgLy8gSWYgc3VibWl0IGJlY29tZXMgdHJ1ZSwgbWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXHJcbiAgICAgICAgaWYgKGRhdGE/LnN1Ym1pdCAmJiB0aGlzLm5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pbnB1dERhdGEgPSBkYXRhO1xyXG4gICAgfVxyXG4gICAgZ2V0IGlucHV0RGF0YSgpOiBBcHBJbnB1dEludGVyZmFjZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0RGF0YTtcclxuICAgIH1cclxuICAgIEBPdXRwdXQoKSBmb2N1c091dEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5wdXREYXRhITogQXBwSW5wdXRJbnRlcmZhY2U7XHJcbiAgICBuZ0NvbnRyb2w6IEZvcm1Db250cm9sTmFtZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlucHV0U2VydmljZTogSW5wdXRTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmlucHV0U2VydmljZS5pbmplY3ROZ0NvbnRyb2woKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY3VzT3V0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbnB1dERhdGEuZm9jdXNPdXRFbWl0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPdXRFbWl0dGVyLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3VzdG9tRXJyb3JTdGF0ZU1hdGNoZXIgPSB7XHJcbiAgICAgICAgaXNFcnJvclN0YXRlOiAoY29udHJvbDogYW55LCBmb3JtOiBhbnkpOiBib29sZWFuID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIHRoaXMuaW5wdXREYXRhPy5zdWJtaXQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImlucHV0RGF0YSAmJiBuZ0NvbnRyb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgIDxtYXQtbGFiZWwgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgJ3JlYWRvbmx5LWNvbG9yJyA6IGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCxcclxuICAgICAgICAgICdpbnZhbGlkLWxhYmVsLWNvbG9yJzogISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIGlucHV0RGF0YS5zdWJtaXQpXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJpbnB1dERhdGEubGFiZWxcIj5cclxuICAgICAge3sgaW5wdXREYXRhLmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxzcGFuICpuZ0lmPVwiaW5wdXREYXRhLnJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZC1pbnB1dFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3JlYWRvbmx5LWNvbG9yJyA6IGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZH1cIj4qPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MucmVhZG9ubHktZmllbGRdPVwiaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkXCJcclxuICA+XHJcbiAgICA8IS0tIExlYWRpbmcgSWNvbiAtLT5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImlucHV0RGF0YS5pY29uUHJlZml4XCJcclxuICAgICAgICAgICAgICBtYXRQcmVmaXhcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgJ3JlYWRvbmx5LWNvbG9yJyA6ICFpbnB1dERhdGEuaWNvblByZWZpeENvbG9yICYmIChpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQpLFxyXG4gICAgICAgICAgICAgICAgICAgICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcicgOiAhaW5wdXREYXRhLmljb25QcmVmaXhDb2xvciAmJiAhKGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZClcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoKGlucHV0RGF0YS5pY29uUHJlZml4VG9vbHRpcCB8fCAnJykgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaW5wdXREYXRhLmljb25QcmVmaXhDb2xvciB8fCBudWxsXCJcclxuICAgID57eyBpbnB1dERhdGEuaWNvblByZWZpeCB9fVxyXG4gICAgPC9tYXQtaWNvbj5cclxuXHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJpbnB1dERhdGEuaWNvblByZWZpeFN2Z1wiXHJcbiAgICAgICAgICAgICAgbWF0UHJlZml4XHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKChpbnB1dERhdGEuaWNvblByZWZpeFRvb2x0aXAgfHwgJycpIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaW5wdXREYXRhLmljb25QcmVmaXhTdmdcIlxyXG4gICAgPjwvbWF0LWljb24+XHJcblxyXG4gICAgPCEtLSBJbnB1dCBGaWVsZCAtLT5cclxuICAgIDxpbnB1dCBtYXRJbnB1dFxyXG4gICAgICAgICAgICpuZ0lmPVwiIWlucHV0RGF0YS50ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgW3R5cGVdPVwiaW5wdXREYXRhLnR5cGUgfHwgJ3RleHQnXCJcclxuICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXREYXRhLnJlYWRPbmx5XCJcclxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKGlucHV0RGF0YS5wbGFjZWhvbGRlciB8fCAnJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgIFtwYXR0ZXJuXT1cImlucHV0RGF0YS5wYXR0ZXJuIVwiXHJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuICAgICAgICAgICBbbWFza109XCJpbnB1dERhdGEubWFzayB8fCAnJ1wiXHJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvciByZWFkb25seS1jdXJzb3InIDogaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiXHJcbiAgICAgICAgICAgW2lucHV0TWFza109XCJpbnB1dERhdGEuaW5wdXRNYXNrIVwiXHJcbiAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcclxuICAgICAgICAgICAoYmx1cik9XCJvbkZvY3VzT3V0KClcIlxyXG4gICAgPlxyXG5cclxuICAgIDx0ZXh0YXJlYSBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW5wdXREYXRhLnRleHRhcmVhXCJcclxuICAgICAgICAgICAgICBbdHlwZV09XCJpbnB1dERhdGEudHlwZSB8fCAndGV4dCdcIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJpbnB1dERhdGEucmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIoaW5wdXREYXRhLnBsYWNlaG9sZGVyIHx8ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiaW5wdXREYXRhLnBhdHRlcm4hXCJcclxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiXHJcbiAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcclxuICAgID48L3RleHRhcmVhPlxyXG5cclxuICAgIDwhLS0gQ2xlYXIgSWNvbiAtLT5cclxuICAgIDxpLXRlY2gtaWNvbi1idXR0b25cclxuICAgICAgKm5nSWY9XCJpbnB1dERhdGEuY2xlYXJhYmxlXCJcclxuICAgICAgaWNvbk5hbWU9XCJjYW5jZWxcIlxyXG4gICAgICBtYXRTdWZmaXhcclxuICAgICAgW2Rpc2FibGVkXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCB8fCBmYWxzZVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCA/ICdyZWFkb25seS1jb2xvcicgOiAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InXCJcclxuICAgICAgKGNsaWNrKT1cImNsZWFyKClcIlxyXG4gICAgPlxyXG4gICAgPC9pLXRlY2gtaWNvbi1idXR0b24+XHJcblxyXG4gICAgPCEtLSBUcmFpbGluZyBJY29uIC0tPlxyXG4gICAgPGktdGVjaC1pY29uLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cImlucHV0RGF0YS5pY29uU3VmZml4XCJcclxuICAgICAgW2ljb25OYW1lXT1cImlucHV0RGF0YS5pY29uU3VmZml4XCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCAgfHwgZmFsc2VcIlxyXG4gICAgICBbbmdDbGFzc109XCJpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgPyAncmVhZG9ubHktY29sb3InIDogJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJ1wiXHJcbiAgICAgIG1hdFN1ZmZpeFxyXG4gICAgPlxyXG4gICAgPC9pLXRlY2gtaWNvbi1idXR0b24+XHJcblxyXG4gICAgPCEtLSBFcnJvciBNZXNzYWdlcyAtLT5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhIShuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgaW5wdXREYXRhLnN1Ym1pdClcIj5cclxuICAgICAge3sgbmdDb250cm9sLmNvbnRyb2wgfCBnZW5lcmF0ZUVycm9yTWVzc2FnZXMgOiAoaW5wdXREYXRhLmxhYmVsIHx8ICcnKSA6IGlucHV0RGF0YS5kZWZhdWx0UGF0dGVybktleSB9fVxyXG4gICAgPC9tYXQtZXJyb3I+XHJcblxyXG4gICAgPCEtLSBIZWxwZXIgVGV4dCAtLT5cclxuICAgIDxtYXQtaGludCAqbmdJZj1cIiEoISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIGlucHV0RGF0YS5zdWJtaXQpKSAmJiBpbnB1dERhdGEuaGludFwiPlxyXG4gICAgICB7eyBpbnB1dERhdGEuaGludCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj5cclxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC90ZXh0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90ZXh0L3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWtCLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFzQjFDLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsSUFBYSxTQUFTLENBQUMsSUFBdUI7UUFDMUMsc0RBQXNEO1FBQ3RELElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFNRCxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUxwQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFxQnJELDRCQUF1QixHQUFHO1lBQ3RCLFlBQVksRUFBRSxDQUFDLE9BQVksRUFBRSxJQUFTLEVBQVcsRUFBRTtnQkFDL0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLENBQUM7U0FDSixDQUFDO1FBbkJFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDOytHQTlCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrS0NuQy9CLCsySEEyRkEsMkNEdkVJLGVBQWUsNEZBQ2YsT0FBTyxvRkFDUCxPQUFPLDJJQUNQLFVBQVUsaVJBQ1YsUUFBUSxnVUFDUixtQkFBbUIsbXVCQUNuQixJQUFJLHdGQUNKLHlCQUF5Qiw4REFDekIsbUJBQW1CLGlLQUNuQixrQkFBa0Isc0dBQ2xCLGdCQUFnQixnakJBQ2hCLGtCQUFrQjs7NEZBSVQsa0JBQWtCO2tCQXBCOUIsU0FBUzsrQkFDRSxtQkFBbUIsV0FHcEI7d0JBQ1AsZUFBZTt3QkFDZixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixRQUFRO3dCQUNSLG1CQUFtQjt3QkFDbkIsSUFBSTt3QkFDSix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkIsY0FDVyxJQUFJO2lGQUdELFNBQVM7c0JBQXJCLEtBQUs7Z0JBVUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2xOYW1lLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwSW5wdXRJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2FwcC1pbnB1dC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZXMvZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZVwiO1xuaW1wb3J0IHtJY29uQnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQge0lucHV0TWFza0RpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvaW5wdXQtbWFzay5kaXJlY3RpdmVcIjtcbmltcG9ydCB7Tmd4TWFza0RpcmVjdGl2ZX0gZnJvbSBcIm5neC1tYXNrXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ktdGVjaC10ZXh0LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgTWF0SWNvbixcbiAgICBNYXRUb29sdGlwLFxuICAgIE1hdElucHV0LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmdJZixcbiAgICBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlLFxuICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgSW5wdXRNYXNrRGlyZWN0aXZlLFxuICAgIE5neE1hc2tEaXJlY3RpdmUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGV4dElucHV0Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBzZXQgaW5wdXREYXRhKGRhdGE6IEFwcElucHV0SW50ZXJmYWNlKSB7XG4gICAgICAgIC8vIElmIHN1Ym1pdCBiZWNvbWVzIHRydWUsIG1hcmsgdGhlIGNvbnRyb2wgYXMgdG91Y2hlZFxuICAgICAgICBpZiAoZGF0YT8uc3VibWl0ICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0RGF0YSA9IGRhdGE7XG4gICAgfVxuICAgIGdldCBpbnB1dERhdGEoKTogQXBwSW5wdXRJbnRlcmZhY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXREYXRhO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgZm9jdXNPdXRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBfaW5wdXREYXRhITogQXBwSW5wdXRJbnRlcmZhY2U7XG4gICAgbmdDb250cm9sOiBGb3JtQ29udHJvbE5hbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlucHV0U2VydmljZTogSW5wdXRTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbnB1dFNlcnZpY2UuaW5qZWN0TmdDb250cm9sKCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lucHV0RGF0YS5mb2N1c091dEVtaXQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPdXRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGN1c3RvbUVycm9yU3RhdGVNYXRjaGVyID0ge1xuICAgICAgICBpc0Vycm9yU3RhdGU6IChjb250cm9sOiBhbnksIGZvcm06IGFueSk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIHRoaXMuaW5wdXREYXRhPy5zdWJtaXQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiIsIjxkaXYgKm5nSWY9XCJpbnB1dERhdGEgJiYgbmdDb250cm9sXCI+XG4gIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgIDxtYXQtbGFiZWwgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdyZWFkb25seS1jb2xvcicgOiBpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQsXG4gICAgICAgICAgJ2ludmFsaWQtbGFiZWwtY29sb3InOiAhIShuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgaW5wdXREYXRhLnN1Ym1pdClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiaW5wdXREYXRhLmxhYmVsXCI+XG4gICAgICB7eyBpbnB1dERhdGEubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1sYWJlbD5cbiAgICA8c3BhbiAqbmdJZj1cImlucHV0RGF0YS5yZXF1aXJlZFwiIGNsYXNzPVwicmVxdWlyZWQtaW5wdXRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiPio8L3NwYW4+XG4gIDwvZGl2PlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctMTAwXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seS1maWVsZF09XCJpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIlxuICA+XG4gICAgPCEtLSBMZWFkaW5nIEljb24gLS0+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaW5wdXREYXRhLmljb25QcmVmaXhcIlxuICAgICAgICAgICAgICBtYXRQcmVmaXhcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAncmVhZG9ubHktY29sb3InIDogIWlucHV0RGF0YS5pY29uUHJlZml4Q29sb3IgJiYgKGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCksXG4gICAgICAgICAgICAgICAgICAgICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcicgOiAhaW5wdXREYXRhLmljb25QcmVmaXhDb2xvciAmJiAhKGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIigoaW5wdXREYXRhLmljb25QcmVmaXhUb29sdGlwIHx8ICcnKSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaW5wdXREYXRhLmljb25QcmVmaXhDb2xvciB8fCBudWxsXCJcbiAgICA+e3sgaW5wdXREYXRhLmljb25QcmVmaXggfX1cbiAgICA8L21hdC1pY29uPlxuXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaW5wdXREYXRhLmljb25QcmVmaXhTdmdcIlxuICAgICAgICAgICAgICBtYXRQcmVmaXhcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKChpbnB1dERhdGEuaWNvblByZWZpeFRvb2x0aXAgfHwgJycpIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtzdmdJY29uXT1cImlucHV0RGF0YS5pY29uUHJlZml4U3ZnXCJcbiAgICA+PC9tYXQtaWNvbj5cblxuICAgIDwhLS0gSW5wdXQgRmllbGQgLS0+XG4gICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICpuZ0lmPVwiIWlucHV0RGF0YS50ZXh0YXJlYVwiXG4gICAgICAgICAgIFt0eXBlXT1cImlucHV0RGF0YS50eXBlIHx8ICd0ZXh0J1wiXG4gICAgICAgICAgIFtyZWFkb25seV09XCJpbnB1dERhdGEucmVhZE9ubHlcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKGlucHV0RGF0YS5wbGFjZWhvbGRlciB8fCAnJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICBbcGF0dGVybl09XCJpbnB1dERhdGEucGF0dGVybiFcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxuICAgICAgICAgICBbbWFza109XCJpbnB1dERhdGEubWFzayB8fCAnJ1wiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3IgcmVhZG9ubHktY3Vyc29yJyA6IGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZH1cIlxuICAgICAgICAgICBbaW5wdXRNYXNrXT1cImlucHV0RGF0YS5pbnB1dE1hc2shXCJcbiAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgICAgKGJsdXIpPVwib25Gb2N1c091dCgpXCJcbiAgICA+XG5cbiAgICA8dGV4dGFyZWEgbWF0SW5wdXRcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbnB1dERhdGEudGV4dGFyZWFcIlxuICAgICAgICAgICAgICBbdHlwZV09XCJpbnB1dERhdGEudHlwZSB8fCAndGV4dCdcIlxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXREYXRhLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihpbnB1dERhdGEucGxhY2Vob2xkZXIgfHwgJycpIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiaW5wdXREYXRhLnBhdHRlcm4hXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcicgOiBpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWR9XCJcbiAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICA+PC90ZXh0YXJlYT5cblxuICAgIDwhLS0gQ2xlYXIgSWNvbiAtLT5cbiAgICA8aS10ZWNoLWljb24tYnV0dG9uXG4gICAgICAqbmdJZj1cImlucHV0RGF0YS5jbGVhcmFibGVcIlxuICAgICAgaWNvbk5hbWU9XCJjYW5jZWxcIlxuICAgICAgbWF0U3VmZml4XG4gICAgICBbZGlzYWJsZWRdPVwiaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgIFtuZ0NsYXNzXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCA/ICdyZWFkb25seS1jb2xvcicgOiAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InXCJcbiAgICAgIChjbGljayk9XCJjbGVhcigpXCJcbiAgICA+XG4gICAgPC9pLXRlY2gtaWNvbi1idXR0b24+XG5cbiAgICA8IS0tIFRyYWlsaW5nIEljb24gLS0+XG4gICAgPGktdGVjaC1pY29uLWJ1dHRvblxuICAgICAgKm5nSWY9XCJpbnB1dERhdGEuaWNvblN1ZmZpeFwiXG4gICAgICBbaWNvbk5hbWVdPVwiaW5wdXREYXRhLmljb25TdWZmaXhcIlxuICAgICAgW2Rpc2FibGVkXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCAgfHwgZmFsc2VcIlxuICAgICAgW25nQ2xhc3NdPVwiaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJyA6ICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcidcIlxuICAgICAgbWF0U3VmZml4XG4gICAgPlxuICAgIDwvaS10ZWNoLWljb24tYnV0dG9uPlxuXG4gICAgPCEtLSBFcnJvciBNZXNzYWdlcyAtLT5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIGlucHV0RGF0YS5zdWJtaXQpXCI+XG4gICAgICB7eyBuZ0NvbnRyb2wuY29udHJvbCB8IGdlbmVyYXRlRXJyb3JNZXNzYWdlcyA6IChpbnB1dERhdGEubGFiZWwgfHwgJycpIDogaW5wdXREYXRhLmRlZmF1bHRQYXR0ZXJuS2V5IH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8IS0tIEhlbHBlciBUZXh0IC0tPlxuICAgIDxtYXQtaGludCAqbmdJZj1cIiEoISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIGlucHV0RGF0YS5zdWJtaXQpKSAmJiBpbnB1dERhdGEuaGludFwiPlxuICAgICAge3sgaW5wdXREYXRhLmhpbnQgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1oaW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=