@alfresco/adf-core 6.8.0-8598497524 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,7 +91,7 @@ DateTimeWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
91
91
  { provide: MAT_DATETIME_FORMATS, useValue: ADF_DATETIME_FORMATS },
92
92
  { provide: DateAdapter, useClass: AdfDateFnsAdapter },
93
93
  { provide: DatetimeAdapter, useClass: AdfDateTimeFnsAdapter }
94
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n type=\"datetime\"\n [touchUi]=\"true\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.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: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
94
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n (keydown.enter)=\"datetimePicker.open()\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n data-automation-id=\"adf-date-time-widget-picker\"\n type=\"datetime\"\n [touchUi]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.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: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
95
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DateTimeWidgetComponent, decorators: [{
96
96
  type: Component,
97
97
  args: [{ providers: [
@@ -99,8 +99,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
99
99
  { provide: MAT_DATETIME_FORMATS, useValue: ADF_DATETIME_FORMATS },
100
100
  { provide: DateAdapter, useClass: AdfDateFnsAdapter },
101
101
  { provide: DatetimeAdapter, useClass: AdfDateTimeFnsAdapter }
102
- ], selector: 'date-time-widget', encapsulation: ViewEncapsulation.None, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n type=\"datetime\"\n [touchUi]=\"true\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"] }]
102
+ ], selector: 'date-time-widget', encapsulation: ViewEncapsulation.None, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n (keydown.enter)=\"datetimePicker.open()\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n data-automation-id=\"adf-date-time-widget-picker\"\n type=\"datetime\"\n [touchUi]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"] }]
103
103
  }], ctorParameters: function () { return [{ type: i1.FormService }, { type: i2.DateAdapter }, { type: i3.DatetimeAdapter }]; }, propDecorators: { value: [{
104
104
  type: Input
105
105
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvZGF0ZS10aW1lL2RhdGUtdGltZS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGUtdGltZS9kYXRlLXRpbWUud2lkZ2V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUErQixNQUFNLDBCQUEwQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7OztBQWNuQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZUFBZTtJQU94RCxZQUFtQixXQUF3QixFQUN2QixXQUE4QixFQUM5QixlQUFzQztRQUN0RCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFISixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBSjFELFVBQUssR0FBUSxJQUFJLENBQUM7SUFNbEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUU7WUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQWdDLENBQUM7WUFDMUQsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1lBRXpELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUF3QyxDQUFDO1lBQ3RFLGVBQWUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUNoRTtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDekU7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3pFO1lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNwRTtTQUNKO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXZGLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEU7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXdDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWlDLENBQUM7UUFFdEQsSUFBSSxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEU7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOztvSEE3RFEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsdUVBWHJCO1FBQ1AsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFO1FBQ3pELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRTtRQUNqRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1FBQ3JELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUU7S0FDaEUsaURDbkNMLDZrRUFtQ0E7MkZETWEsdUJBQXVCO2tCQVpuQyxTQUFTO2dDQUNLO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTt3QkFDekQsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFO3dCQUNqRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUNyRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO3FCQUNoRSxZQUNTLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJOzBKQU9yQyxLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IERhdGV0aW1lQWRhcHRlciwgTUFUX0RBVEVUSU1FX0ZPUk1BVFMsIE1hdERhdGV0aW1lcGlja2VySW5wdXRFdmVudCB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFERl9EQVRFX0ZPUk1BVFMsIEFkZkRhdGVGbnNBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL2RhdGUtZm5zLWFkYXB0ZXInO1xuaW1wb3J0IHsgQURGX0RBVEVUSU1FX0ZPUk1BVFMsIEFkZkRhdGVUaW1lRm5zQWRhcHRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy9kYXRldGltZS1mbnMtYWRhcHRlcic7XG5pbXBvcnQgeyBEYXRlRm5zVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcblxuQENvbXBvbmVudCh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IEFERl9EQVRFX0ZPUk1BVFMgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURVRJTUVfRk9STUFUUywgdXNlVmFsdWU6IEFERl9EQVRFVElNRV9GT1JNQVRTIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBBZGZEYXRlRm5zQWRhcHRlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IERhdGV0aW1lQWRhcHRlciwgdXNlQ2xhc3M6IEFkZkRhdGVUaW1lRm5zQWRhcHRlciB9XG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2RhdGUtdGltZS13aWRnZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtdGltZS53aWRnZXQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIG1pbkRhdGU6IERhdGU7XG4gICAgbWF4RGF0ZTogRGF0ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IGFueSA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RGF0ZT4pIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5maWVsZC5kYXRlRGlzcGxheUZvcm1hdCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZUFkYXB0ZXIgPSB0aGlzLmRhdGVBZGFwdGVyIGFzIEFkZkRhdGVGbnNBZGFwdGVyO1xuICAgICAgICAgICAgZGF0ZUFkYXB0ZXIuZGlzcGxheUZvcm1hdCA9IHRoaXMuZmllbGQuZGF0ZURpc3BsYXlGb3JtYXQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGVUaW1lQWRhcHRlciA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyIGFzIEFkZkRhdGVUaW1lRm5zQWRhcHRlcjtcbiAgICAgICAgICAgIGRhdGVUaW1lQWRhcHRlci5kaXNwbGF5Rm9ybWF0ID0gdGhpcy5maWVsZC5kYXRlRGlzcGxheUZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZC5taW5WYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWluRGF0ZSA9IERhdGVGbnNVdGlscy5sb2NhbFRvVXRjKG5ldyBEYXRlKHRoaXMuZmllbGQubWluVmFsdWUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQubWF4VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heERhdGUgPSBEYXRlRm5zVXRpbHMubG9jYWxUb1V0YyhuZXcgRGF0ZSh0aGlzLmZpZWxkLm1heFZhbHVlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IERhdGVGbnNVdGlscy5sb2NhbFRvVXRjKG5ldyBEYXRlKHRoaXMuZmllbGQudmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2VkKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnBhcnNlKGlucHV0LnZhbHVlLCB0aGlzLmZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICBpZiAoaXNWYWxpZChuZXdWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSBEYXRlRm5zVXRpbHMudXRjVG9Mb2NhbChuZXdWYWx1ZSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25GaWVsZENoYW5nZWQodGhpcy5maWVsZCk7XG4gICAgfVxuXG4gICAgb25EYXRlQ2hhbmdlZChldmVudDogTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50PERhdGU+KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0RWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSAmJiBpc1ZhbGlkKG5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IERhdGVGbnNVdGlscy51dGNUb0xvY2FsKG5ld1ZhbHVlKS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IGlucHV0LnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkZpZWxkQ2hhbmdlZCh0aGlzLmZpZWxkKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwie3tmaWVsZC5jbGFzc05hbWV9fVwiIGlkPVwiZGF0YS10aW1lLXdpZGdldFwiIFtjbGFzcy5hZGYtaW52YWxpZF09XCIhZmllbGQuaXNWYWxpZCAmJiBpc1RvdWNoZWQoKVwiIFtjbGFzcy5hZGYtbGVmdC1sYWJlbC1pbnB1dC1jb250YWluZXJdPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPnt7ZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fSAoe3tmaWVsZC5kYXRlRGlzcGxheUZvcm1hdH19KTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgKm5nSWY9XCJpc1JlcXVpcmVkKClcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1kYXRlLXRpbWUtd2lkZ2V0XCIgW2NsYXNzLmFkZi1sZWZ0LWxhYmVsLWlucHV0LWRhdGVwaWNrZXJdPVwiZmllbGQubGVmdExhYmVsc1wiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsXCIgKm5nSWY9XCIhZmllbGQubGVmdExhYmVsc1wiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPnt7ZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fSAoe3tmaWVsZC5kYXRlRGlzcGxheUZvcm1hdH19KTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgKm5nSWY9XCJpc1JlcXVpcmVkKClcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwiZGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiMTAwMFwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgICAgICBbbWF4XT1cIm1heERhdGVcIj5cbiAgICAgICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImRhdGV0aW1lUGlja2VyXCIgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCI+PC9tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZXJyb3Itd2lkZ2V0IFtlcnJvcl09XCJmaWVsZC52YWxpZGF0aW9uU3VtbWFyeVwiPjwvZXJyb3Itd2lkZ2V0PlxuICAgICAgICA8ZXJyb3Itd2lkZ2V0ICpuZ0lmPVwiaXNJbnZhbGlkRmllbGRSZXF1aXJlZCgpICYmIGlzVG91Y2hlZCgpXCIgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cIj48L2Vycm9yLXdpZGdldD5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlciAjZGF0ZXRpbWVQaWNrZXJcbiAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZVwiXG4gICAgICAgICAgICBbdG91Y2hVaV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtvcGVuT25Gb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgIFt0aW1lSW50ZXJ2YWxdPVwiNVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQucmVhZE9ubHlcIj5cbiAgICAgICAgPC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvZGF0ZS10aW1lL2RhdGUtdGltZS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGUtdGltZS9kYXRlLXRpbWUud2lkZ2V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUErQixNQUFNLDBCQUEwQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7OztBQWNuQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZUFBZTtJQU94RCxZQUFtQixXQUF3QixFQUN2QixXQUE4QixFQUM5QixlQUFzQztRQUN0RCxLQUFLLENBQUMsV0FBVyxDQUFD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QkFBb0IsRUFBRTtRQUNqRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1FBQ3JELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUU7S0FDaEUsaURDbkNMLG9xRUFvQ0E7MkZES2EsdUJBQXVCO2tCQVpuQyxTQUFTO2dDQUNLO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTt3QkFDekQsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFO3dCQUNqRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUNyRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO3FCQUNoRSxZQUNTLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJOzBKQU9yQyxLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IERhdGV0aW1lQWRhcHRlciwgTUFUX0RBVEVUSU1FX0ZPUk1BVFMsIE1hdERhdGV0aW1lcGlja2VySW5wdXRFdmVudCB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFERl9EQVRFX0ZPUk1BVFMsIEFkZkRhdGVGbnNBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL2RhdGUtZm5zLWFkYXB0ZXInO1xuaW1wb3J0IHsgQURGX0RBVEVUSU1FX0ZPUk1BVFMsIEFkZkRhdGVUaW1lRm5zQWRhcHRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy9kYXRldGltZS1mbnMtYWRhcHRlcic7XG5pbXBvcnQgeyBEYXRlRm5zVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcblxuQENvbXBvbmVudCh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IEFERl9EQVRFX0ZPUk1BVFMgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURVRJTUVfRk9STUFUUywgdXNlVmFsdWU6IEFERl9EQVRFVElNRV9GT1JNQVRTIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBBZGZEYXRlRm5zQWRhcHRlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IERhdGV0aW1lQWRhcHRlciwgdXNlQ2xhc3M6IEFkZkRhdGVUaW1lRm5zQWRhcHRlciB9XG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2RhdGUtdGltZS13aWRnZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtdGltZS53aWRnZXQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIG1pbkRhdGU6IERhdGU7XG4gICAgbWF4RGF0ZTogRGF0ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IGFueSA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RGF0ZT4pIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5maWVsZC5kYXRlRGlzcGxheUZvcm1hdCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZUFkYXB0ZXIgPSB0aGlzLmRhdGVBZGFwdGVyIGFzIEFkZkRhdGVGbnNBZGFwdGVyO1xuICAgICAgICAgICAgZGF0ZUFkYXB0ZXIuZGlzcGxheUZvcm1hdCA9IHRoaXMuZmllbGQuZGF0ZURpc3BsYXlGb3JtYXQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGRhdGVUaW1lQWRhcHRlciA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyIGFzIEFkZkRhdGVUaW1lRm5zQWRhcHRlcjtcbiAgICAgICAgICAgIGRhdGVUaW1lQWRhcHRlci5kaXNwbGF5Rm9ybWF0ID0gdGhpcy5maWVsZC5kYXRlRGlzcGxheUZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZC5taW5WYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWluRGF0ZSA9IERhdGVGbnNVdGlscy5sb2NhbFRvVXRjKG5ldyBEYXRlKHRoaXMuZmllbGQubWluVmFsdWUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQubWF4VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heERhdGUgPSBEYXRlRm5zVXRpbHMubG9jYWxUb1V0YyhuZXcgRGF0ZSh0aGlzLmZpZWxkLm1heFZhbHVlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IERhdGVGbnNVdGlscy5sb2NhbFRvVXRjKG5ldyBEYXRlKHRoaXMuZmllbGQudmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2VkKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnBhcnNlKGlucHV0LnZhbHVlLCB0aGlzLmZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0KTtcblxuICAgICAgICBpZiAoaXNWYWxpZChuZXdWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSBEYXRlRm5zVXRpbHMudXRjVG9Mb2NhbChuZXdWYWx1ZSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25GaWVsZENoYW5nZWQodGhpcy5maWVsZCk7XG4gICAgfVxuXG4gICAgb25EYXRlQ2hhbmdlZChldmVudDogTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50PERhdGU+KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0RWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSAmJiBpc1ZhbGlkKG5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IERhdGVGbnNVdGlscy51dGNUb0xvY2FsKG5ld1ZhbHVlKS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IGlucHV0LnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkZpZWxkQ2hhbmdlZCh0aGlzLmZpZWxkKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwie3tmaWVsZC5jbGFzc05hbWV9fVwiIGlkPVwiZGF0YS10aW1lLXdpZGdldFwiIFtjbGFzcy5hZGYtaW52YWxpZF09XCIhZmllbGQuaXNWYWxpZCAmJiBpc1RvdWNoZWQoKVwiIFtjbGFzcy5hZGYtbGVmdC1sYWJlbC1pbnB1dC1jb250YWluZXJdPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPnt7ZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fSAoe3tmaWVsZC5kYXRlRGlzcGxheUZvcm1hdH19KTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgKm5nSWY9XCJpc1JlcXVpcmVkKClcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1kYXRlLXRpbWUtd2lkZ2V0XCIgW2NsYXNzLmFkZi1sZWZ0LWxhYmVsLWlucHV0LWRhdGVwaWNrZXJdPVwiZmllbGQubGVmdExhYmVsc1wiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsXCIgKm5nSWY9XCIhZmllbGQubGVmdExhYmVsc1wiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPnt7ZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fSAoe3tmaWVsZC5kYXRlRGlzcGxheUZvcm1hdH19KTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgKm5nSWY9XCJpc1JlcXVpcmVkKClcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwiZGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiZGF0ZXRpbWVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCIxMDAwXCJcbiAgICAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVwiPlxuICAgICAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZGF0ZXRpbWVQaWNrZXJcIiBbZGlzYWJsZWRdPVwiZmllbGQucmVhZE9ubHlcIj48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxlcnJvci13aWRnZXQgW2Vycm9yXT1cImZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5XCI+PC9lcnJvci13aWRnZXQ+XG4gICAgICAgIDxlcnJvci13aWRnZXQgKm5nSWY9XCJpc0ludmFsaWRGaWVsZFJlcXVpcmVkKCkgJiYgaXNUb3VjaGVkKClcIiByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVwiPjwvZXJyb3Itd2lkZ2V0PlxuICAgICAgICA8bWF0LWRhdGV0aW1lcGlja2VyICNkYXRldGltZVBpY2tlclxuICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWRhdGUtdGltZS13aWRnZXQtcGlja2VyXCJcbiAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZVwiXG4gICAgICAgICAgICBbdG91Y2hVaV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt0aW1lSW50ZXJ2YWxdPVwiNVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQucmVhZE9ubHlcIj5cbiAgICAgICAgPC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -20113,7 +20113,7 @@ DateTimeWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
20113
20113
  { provide: MAT_DATETIME_FORMATS, useValue: ADF_DATETIME_FORMATS },
20114
20114
  { provide: DateAdapter, useClass: AdfDateFnsAdapter },
20115
20115
  { provide: DatetimeAdapter, useClass: AdfDateTimeFnsAdapter }
20116
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n type=\"datetime\"\n [touchUi]=\"true\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i4.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: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3$3.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3$3.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3$3.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
20116
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n (keydown.enter)=\"datetimePicker.open()\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n data-automation-id=\"adf-date-time-widget-picker\"\n type=\"datetime\"\n [touchUi]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i4.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: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3$3.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3$3.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3$3.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
20117
20117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DateTimeWidgetComponent, decorators: [{
20118
20118
  type: Component,
20119
20119
  args: [{ providers: [
@@ -20121,7 +20121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
20121
20121
  { provide: MAT_DATETIME_FORMATS, useValue: ADF_DATETIME_FORMATS },
20122
20122
  { provide: DateAdapter, useClass: AdfDateFnsAdapter },
20123
20123
  { provide: DatetimeAdapter, useClass: AdfDateTimeFnsAdapter }
20124
- ], selector: 'date-time-widget', encapsulation: ViewEncapsulation.None, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n type=\"datetime\"\n [touchUi]=\"true\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"] }]
20124
+ ], selector: 'date-time-widget', encapsulation: ViewEncapsulation.None, template: "<div class=\"{{field.className}}\" id=\"data-time-widget\" [class.adf-invalid]=\"!field.isValid && isTouched()\" [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n </div>\n <div>\n <mat-form-field class=\"adf-date-time-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\" [hideRequiredMarker]=\"true\">\n <label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">{{field.name | translate }} ({{field.dateDisplayFormat}})<span class=\"adf-asterisk\" *ngIf=\"isRequired()\">*</span></label>\n <input matInput\n [matDatetimepicker]=\"datetimePicker\"\n [id]=\"field.id\"\n [(ngModel)]=\"value\"\n [required]=\"isRequired()\"\n [disabled]=\"field.readOnly\"\n (change)=\"onValueChanged($event)\"\n (dateChange)=\"onDateChanged($event)\"\n (keydown.enter)=\"datetimePicker.open()\"\n [placeholder]=\"field.placeholder\"\n [matTooltip]=\"field.tooltip\"\n (blur)=\"markAsTouched()\"\n matTooltipPosition=\"above\"\n matTooltipShowDelay=\"1000\"\n [min]=\"minDate\"\n [max]=\"maxDate\">\n <mat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"field.readOnly\"></mat-datetimepicker-toggle>\n </mat-form-field>\n <error-widget [error]=\"field.validationSummary\"></error-widget>\n <error-widget *ngIf=\"isInvalidFieldRequired() && isTouched()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"></error-widget>\n <mat-datetimepicker #datetimePicker\n data-automation-id=\"adf-date-time-widget-picker\"\n type=\"datetime\"\n [touchUi]=\"true\"\n [timeInterval]=\"5\"\n [disabled]=\"field.readOnly\">\n </mat-datetimepicker>\n </div>\n</div>\n", styles: [".adf-date-time-widget .mat-form-field-suffix{top:26px}.adf-date-time-widget .mat-form-field-label-wrapper{top:20px}.adf-left-label-input-datepicker .mat-form-field-suffix{top:0}.adf-left-label-input-datepicker .mat-form-field-infix{width:100%}.mat-datetimepicker-toggle{color:var(--adf-theme-foreground-icon-color)}\n"] }]
20125
20125
  }], ctorParameters: function () { return [{ type: FormService }, { type: i1$2.DateAdapter }, { type: i3$3.DatetimeAdapter }]; }, propDecorators: { value: [{
20126
20126
  type: Input
20127
20127
  }] } });