ngx-ode-ui 4.8.0-develop-pedago.5 → 4.8.0-develop-b2school.15

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.
@@ -1,5 +1,5 @@
1
- import { OdeComponent } from 'ngx-ode-core';
2
1
  import { Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
2
+ import { OdeComponent } from 'ngx-ode-core';
3
3
  import { NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';
4
4
  import Flatpickr from 'flatpickr';
5
5
  import French from 'flatpickr/dist/l10n/fr.js';
@@ -28,6 +28,8 @@ export class DatepickerComponent extends OdeComponent {
28
28
  this.changeDate = new EventEmitter();
29
29
  this.onChangeCallback = NOOP;
30
30
  this.onTouchedCallback = NOOP;
31
+ this.onInputChangeObserver = null;
32
+ this.debounceTimer = null;
31
33
  }
32
34
  get value() {
33
35
  return this.innerValue;
@@ -76,23 +78,37 @@ export class DatepickerComponent extends OdeComponent {
76
78
  altInput: !this.disabled,
77
79
  altFormat: 'd/m/Y',
78
80
  dateFormat: 'Y-m-d',
79
- allowInput: false,
81
+ allowInput: true,
80
82
  enableTime: this.enableTime,
81
83
  minDate: this.minDate,
82
84
  maxDate: this.maxDate,
83
85
  clickOpens: false,
84
86
  wrap: true,
85
- locale: datePickerLocale
87
+ locale: datePickerLocale,
88
+ onChange: (selectedDates, dateStr) => {
89
+ this.value = dateStr;
90
+ },
91
+ onClose: () => {
92
+ this.onTouchedCallback();
93
+ }
86
94
  };
87
95
  this.datePickerInst = new Flatpickr(this.datePickerElement.nativeElement, options);
88
96
  if (!this.disabled) {
97
+ // Add click handler for the alt input
89
98
  this.datePickerInst.altInput.addEventListener('click', e => {
90
99
  if (!this.readonly) {
91
100
  this.datePickerInst.toggle();
92
101
  }
93
102
  });
103
+ // Add debounced input handler for manual entry
104
+ this.datePickerInst.altInput.addEventListener('blur', e => {
105
+ const inputDate = this.datePickerInst.parseDate(this.datePickerInst.altInput.value, options.altFormat);
106
+ if (inputDate) {
107
+ this.datePickerInst.setDate(inputDate, true);
108
+ }
109
+ });
94
110
  }
95
- // Force updating the date input readonly attribute :
111
+ // Force updating the date input readonly attribute
96
112
  this.readonly = this._readonly;
97
113
  }
98
114
  ngOnDestroy() {
@@ -145,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
145
161
  }], changeDate: [{
146
162
  type: Output
147
163
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFDckUsS0FBSyxFQUFhLE1BQU0sRUFBYSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxNQUFNLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBRS9DLGlCQUFpQjtBQUNqQixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDbEIsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBRWpELFlBQW9CLFFBQW1CLEVBQ25CLGFBQTRCLEVBQ3BDLFFBQWtCO1FBQ2QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSFosYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtR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LENBQUUsbUNBQW1DLENBQUUscVFBd0N2QyxPQUFPLHVFQy9EdEIsc2lCQUtBOzJGRG9CYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksaUJBQWlCLGFBR2hCLENBQUUsbUNBQW1DLENBQUU7bUpBZ0NsRCxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUk5QixZQUFZO3NCQURYLFNBQVM7dUJBQUMsVUFBVTtnQkFPckIsS0FBSztzQkFESixTQUFTO3VCQUFDLE9BQU87Z0JBSWxCLFFBQVE7c0JBRFAsS0FBSztnQkFJRixRQUFRO3NCQURYLEtBQUs7Z0JBZU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZixcbiAgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0xhYmVsc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xhYmVscy5zZXJ2aWNlJztcbmltcG9ydCBGbGF0cGlja3IgZnJvbSAnZmxhdHBpY2tyJztcbmltcG9ydCBGcmVuY2ggZnJvbSAnZmxhdHBpY2tyL2Rpc3QvbDEwbi9mci5qcyc7XG5cbi8vIGFjY2VzcyBuZ21vZGVsXG5jb25zdCBOT09QID0gKCkgPT4ge1xufTtcbmV4cG9ydCBjb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVwaWNrZXJDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ29kZS1kYXRlLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFsgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBsYWJlbHNTZXJ2aWNlOiBMYWJlbHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgICAgICBsZXQgaW5pdCA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5pbm5lclZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGluaXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHY7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodik7XG4gICAgICAgICAgICBpZiAoIWluaXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURhdGUuZW1pdCh2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbm5lclZhbHVlOiBhbnkgPSAnJztcblxuICAgIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXJFbGVtZW50JylcbiAgICBkYXRlUGlja2VyRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJylcbiAgICBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICAvLyBpbnN0YW5jZSBmbGF0cGlja3JcbiAgICBwcml2YXRlIGRhdGVQaWNrZXJJbnN0OiBGbGF0cGlja3I7XG5cbiAgICBAVmlld0NoaWxkKE5nTW9kZWwpXG4gICAgbW9kZWw6IE5nTW9kZWw7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCByZWFkb25seSggdmFsOmJvb2xlYW4gKSB7XG4gICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gdmFsO1xuICAgICAgICBpZiggdGhpcy5kYXRlUGlja2VySW5zdCAmJiB0aGlzLmRhdGVQaWNrZXJJbnN0LmFsdElucHV0ICkge1xuICAgICAgICAgICAgLy8gQXBwbHkgdGhlIHJlYWRvbmx5IGF0dHJpYnV0ZSBhZGRpdGlvbi9yZW1vdmFsIHRvIHRoZSB2aXNpYmxlIGlucHV0ICh3cmFwcGVkKVxuICAgICAgICAgICAgaWYoIHZhbCApIHRoaXMuZGF0ZVBpY2tlckluc3QuYWx0SW5wdXQuc2V0QXR0cmlidXRlKCdyZWFkb25seScsIFwiXCIpO1xuICAgICAgICAgICAgZWxzZSAgICAgIHRoaXMuZGF0ZVBpY2tlckluc3QuYWx0SW5wdXQucmVtb3ZlQXR0cmlidXRlKCdyZWFkb25seScpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCByZWFkb25seSgpOmJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gICAgfVxuICAgIF9yZWFkb25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBlbmFibGVUaW1lID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbkRhdGU7XG5cbiAgICBASW5wdXQoKVxuICAgIG1heERhdGU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2VEYXRlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gTk9PUDtcbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gTk9PUDtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIC8vIGFkZCBhdHRyIGRhdGEtaW5wdXQsIG1hbmRhdG9yeSBmb3IgdGhlIHBpY2tlciB0byB3b3JrIGluIHdyYXAgbW9kZVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGF0YS1pbnB1dCcsICcnKTtcblxuICAgICAgICAvLyBkaXNhYmxlZCBjYXNlXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkID09PSB0cnVlKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmF2aWdhdG9yTGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcbiAgICAgICAgbGV0IGRhdGVQaWNrZXJMb2NhbGUgPSB7fTtcbiAgICAgICAgaWYgKG5hdmlnYXRvckxhbmd1YWdlID09PSAnZnInKSB7XG4gICAgICAgICAgICBkYXRlUGlja2VyTG9jYWxlID0gRnJlbmNoLmZyO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gb3B0aW9ucyBmb3IgdGhlIGZsYXRwaWNrciBpbnN0YW5jZVxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgYWx0SW5wdXQ6ICF0aGlzLmRpc2FibGVkLFxuICAgICAgICAgICAgYWx0Rm9ybWF0OiAnZC9tL1knLCAvLyBkYXRlIGZvcm1hdCBkaXNwbGF5ZWQgdG8gdXNlclxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogJ1ktbS1kJywgLy8gZGF0ZSBmb3JtYXQgc2VudCB0byBzZXJ2ZXJcbiAgICAgICAgICAgIGFsbG93SW5wdXQ6IGZhbHNlLFxuICAgICAgICAgICAgZW5hYmxlVGltZTogdGhpcy5lbmFibGVUaW1lLFxuICAgICAgICAgICAgbWluRGF0ZTogdGhpcy5taW5EYXRlLFxuICAgICAgICAgICAgbWF4RGF0ZTogdGhpcy5tYXhEYXRlLFxuICAgICAgICAgICAgY2xpY2tPcGVuczogZmFsc2UsXG4gICAgICAgICAgICB3cmFwOiB0cnVlLCAvLyB0byBhZGQgaW5wdXQgZGVjb3JhdGlvbiAoY2FsZW5kYXIgaWNvbiBhbmQgZGVsZXRlIGljb24pXG4gICAgICAgICAgICBsb2NhbGU6IGRhdGVQaWNrZXJMb2NhbGVcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0ID0gbmV3IEZsYXRwaWNrcih0aGlzLmRhdGVQaWNrZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgICBpZiggIXRoaXMuZGlzYWJsZWQgKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0LmFsdElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoICF0aGlzLnJlYWRvbmx5ICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0LnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yY2UgdXBkYXRpbmcgdGhlIGRhdGUgaW5wdXQgcmVhZG9ubHkgYXR0cmlidXRlIDpcbiAgICAgICAgdGhpcy5yZWFkb25seSA9IHRoaXMuX3JlYWRvbmx5O1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUgJiYgdGhpcy5kYXRlUGlja2VySW5zdCkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0LnNldERhdGUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICBsYWJlbHMobGFiZWwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFiZWxzU2VydmljZS5nZXRMYWJlbChsYWJlbCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsYXRwaWNrclwiICNkYXRlUGlja2VyRWxlbWVudD5cbiAgPGlucHV0IHR5cGU9XCJkYXRlXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1kZWZhdWx0JzogZGlzYWJsZWQgfVwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiAjaW5wdXRSZWY+XG4gIDxhICpuZ0lmPVwiIWRpc2FibGVkXCIgW2NsYXNzLmhpZGRlbl09XCJyZWFkb25seVwiIGRhdGEtdG9nZ2xlIFt0aXRsZV09XCJsYWJlbHMoJ2RhdGVwaWNrZXIub3BlbicpXCI+PGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhciBvcGVuXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgPGEgKm5nSWY9XCIhZGlzYWJsZWRcIiBbY2xhc3MuaGlkZGVuXT1cInJlYWRvbmx5XCIgZGF0YS1jbGVhciBbdGl0bGVdPVwibGFiZWxzKCdkYXRlcGlja2VyLmRlbGV0ZScpXCI+PGkgY2xhc3M9XCJmYSBmYS10aW1lcyBkZWxldGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuPC9kaXY+XG4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDWSxTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFFOUQsS0FBSyxFQUFhLE1BQU0sRUFBYSxTQUFTLEVBQ2pELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxNQUFNLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBRy9DLGlCQUFpQjtBQUNqQixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7QUFDbEIsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQVFGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBRWpELFlBQW9CLFFBQW1CLEVBQ25CLGFBQTRCLEVBQ3BDLFFBQWtCO1FBQ2QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSFosYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXdCeEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQWU3QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBY2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQVNqQixlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdEQscUJBQWdCLEdBQXFCLElBQUksQ0FBQztRQUMxQyxzQkFBaUIsR0FBZSxJQUFJLENBQUM7UUFDckMsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLGtCQUFhLEdBQVEsSUFBSSxDQUFDO0lBdEV0QixDQUFDO0lBRWIsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxDQUFNO1FBQ1osSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQjtTQUVKO0lBQ0wsQ0FBQztJQW1CRCxJQUNJLFFBQVEsQ0FBRSxHQUFXO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRztZQUN0RCwrRUFBK0U7WUFDL0UsSUFBSSxHQUFHO2dCQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7O2dCQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEU7SUFDTCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUF1QkQsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixxRUFBcUU7UUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlFLGdCQUFnQjtRQUNoQixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hDO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLGlCQUFpQixLQUFLLElBQUksRUFBRTtZQUM1QixnQkFBZ0IsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ2hDO1FBRUQscUNBQXFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFHO1lBQ1osUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDeEIsU0FBUyxFQUFFLE9BQU87WUFDbEIsVUFBVSxFQUFFLE9BQU87WUFDbkIsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsVUFBVSxFQUFFLEtBQUs7WUFDakIsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7WUFDekIsQ0FBQztZQUNELE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsQ0FBQztTQUNKLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbkYsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsc0NBQXNDO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ2hDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUN0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUNsQyxPQUFPLENBQUMsU0FBUyxDQUNwQixDQUFDO2dCQUNGLElBQUksU0FBUyxFQUFFO29CQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDaEQ7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7Z0hBbktRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVPQUZqQixDQUFFLG1DQUFtQyxDQUFFLHFRQXdDdkMsT0FBTyx1RUNsRXRCLHNpQkFLQTsyRkR1QmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixhQUdoQixDQUFFLG1DQUFtQyxDQUFFO21KQWdDbEQsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQjtnQkFJOUIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLFVBQVU7Z0JBT3JCLEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPO2dCQUlsQixRQUFRO3NCQURQLEtBQUs7Z0JBSUYsUUFBUTtzQkFEWCxLQUFLO2dCQWVOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixVQUFVO3NCQURULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCBGbGF0cGlja3IgZnJvbSAnZmxhdHBpY2tyJztcbmltcG9ydCBGcmVuY2ggZnJvbSAnZmxhdHBpY2tyL2Rpc3QvbDEwbi9mci5qcyc7XG5pbXBvcnQgeyBMYWJlbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGFiZWxzLnNlcnZpY2UnO1xuXG4vLyBhY2Nlc3Mgbmdtb2RlbFxuY29uc3QgTk9PUCA9ICgpID0+IHtcbn07XG5leHBvcnQgY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbIENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgbGFiZWxzU2VydmljZTogTGFiZWxzU2VydmljZSxcbiAgICAgICAgICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICAgICAgbGV0IGluaXQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpbml0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodiAhPT0gdGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB2O1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHYpO1xuICAgICAgICAgICAgaWYgKCFpbml0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEYXRlLmVtaXQodik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5uZXJWYWx1ZTogYW55ID0gJyc7XG5cbiAgICBAVmlld0NoaWxkKCdkYXRlUGlja2VyRWxlbWVudCcpXG4gICAgZGF0ZVBpY2tlckVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLy8gaW5zdGFuY2UgZmxhdHBpY2tyXG4gICAgcHJpdmF0ZSBkYXRlUGlja2VySW5zdDogRmxhdHBpY2tyO1xuXG4gICAgQFZpZXdDaGlsZChOZ01vZGVsKVxuICAgIG1vZGVsOiBOZ01vZGVsO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgcmVhZG9ubHkoIHZhbDpib29sZWFuICkge1xuICAgICAgICB0aGlzLl9yZWFkb25seSA9IHZhbDtcbiAgICAgICAgaWYoIHRoaXMuZGF0ZVBpY2tlckluc3QgJiYgdGhpcy5kYXRlUGlja2VySW5zdC5hbHRJbnB1dCApIHtcbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSByZWFkb25seSBhdHRyaWJ1dGUgYWRkaXRpb24vcmVtb3ZhbCB0byB0aGUgdmlzaWJsZSBpbnB1dCAod3JhcHBlZClcbiAgICAgICAgICAgIGlmKCB2YWwgKSB0aGlzLmRhdGVQaWNrZXJJbnN0LmFsdElucHV0LnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCBcIlwiKTtcbiAgICAgICAgICAgIGVsc2UgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0LmFsdElucHV0LnJlbW92ZUF0dHJpYnV0ZSgncmVhZG9ubHknKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgcmVhZG9ubHkoKTpib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICAgIH1cbiAgICBfcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlVGltZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBtaW5EYXRlO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhEYXRlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgY2hhbmdlRGF0ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IE5PT1A7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IE5PT1A7XG4gICAgcHJpdmF0ZSBvbklucHV0Q2hhbmdlT2JzZXJ2ZXIgPSBudWxsO1xuICAgIHByaXZhdGUgZGVib3VuY2VUaW1lcjogYW55ID0gbnVsbDtcbiAgICBcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICAvLyBhZGQgYXR0ciBkYXRhLWlucHV0LCBtYW5kYXRvcnkgZm9yIHRoZSBwaWNrZXIgdG8gd29yayBpbiB3cmFwIG1vZGVcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2RhdGEtaW5wdXQnLCAnJyk7XG5cbiAgICAgICAgLy8gZGlzYWJsZWQgY2FzZVxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5jb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5hdmlnYXRvckxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnNwbGl0KCctJylbMF07XG4gICAgICAgIGxldCBkYXRlUGlja2VyTG9jYWxlID0ge307XG4gICAgICAgIGlmIChuYXZpZ2F0b3JMYW5ndWFnZSA9PT0gJ2ZyJykge1xuICAgICAgICAgICAgZGF0ZVBpY2tlckxvY2FsZSA9IEZyZW5jaC5mcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG9wdGlvbnMgZm9yIHRoZSBmbGF0cGlja3IgaW5zdGFuY2VcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGFsdElucHV0OiAhdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgICAgIGFsdEZvcm1hdDogJ2QvbS9ZJywgLy8gZGF0ZSBmb3JtYXQgZGlzcGxheWVkIHRvIHVzZXJcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6ICdZLW0tZCcsIC8vIGRhdGUgZm9ybWF0IHNlbnQgdG8gc2VydmVyXG4gICAgICAgICAgICBhbGxvd0lucHV0OiB0cnVlLCAvLyBBbGxvdyBtYW51YWwgaW5wdXRcbiAgICAgICAgICAgIGVuYWJsZVRpbWU6IHRoaXMuZW5hYmxlVGltZSxcbiAgICAgICAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSxcbiAgICAgICAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSxcbiAgICAgICAgICAgIGNsaWNrT3BlbnM6IGZhbHNlLFxuICAgICAgICAgICAgd3JhcDogdHJ1ZSwgLy8gdG8gYWRkIGlucHV0IGRlY29yYXRpb24gKGNhbGVuZGFyIGljb24gYW5kIGRlbGV0ZSBpY29uKVxuICAgICAgICAgICAgbG9jYWxlOiBkYXRlUGlja2VyTG9jYWxlLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChzZWxlY3RlZERhdGVzLCBkYXRlU3RyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVTdHI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0ID0gbmV3IEZsYXRwaWNrcih0aGlzLmRhdGVQaWNrZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgICBcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAvLyBBZGQgY2xpY2sgaGFuZGxlciBmb3IgdGhlIGFsdCBpbnB1dFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySW5zdC5hbHRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJJbnN0LnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBBZGQgZGVib3VuY2VkIGlucHV0IGhhbmRsZXIgZm9yIG1hbnVhbCBlbnRyeVxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySW5zdC5hbHRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXREYXRlID0gdGhpcy5kYXRlUGlja2VySW5zdC5wYXJzZURhdGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckluc3QuYWx0SW5wdXQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYWx0Rm9ybWF0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXREYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckluc3Quc2V0RGF0ZShpbnB1dERhdGUsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yY2UgdXBkYXRpbmcgdGhlIGRhdGUgaW5wdXQgcmVhZG9ubHkgYXR0cmlidXRlXG4gICAgICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLl9yZWFkb25seTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VySW5zdC5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5pbm5lclZhbHVlICYmIHRoaXMuZGF0ZVBpY2tlckluc3QpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySW5zdC5zZXREYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgbGFiZWxzKGxhYmVsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhYmVsc1NlcnZpY2UuZ2V0TGFiZWwobGFiZWwpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGF0cGlja3JcIiAjZGF0ZVBpY2tlckVsZW1lbnQ+XG4gIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIFsobmdNb2RlbCldPVwidmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbbmdDbGFzc109XCJ7ICdjdXJzb3ItZGVmYXVsdCc6IGRpc2FibGVkIH1cIiBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCIgI2lucHV0UmVmPlxuICA8YSAqbmdJZj1cIiFkaXNhYmxlZFwiIFtjbGFzcy5oaWRkZW5dPVwicmVhZG9ubHlcIiBkYXRhLXRvZ2dsZSBbdGl0bGVdPVwibGFiZWxzKCdkYXRlcGlja2VyLm9wZW4nKVwiPjxpIGNsYXNzPVwiZmEgZmEtY2FsZW5kYXIgb3BlblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XG4gIDxhICpuZ0lmPVwiIWRpc2FibGVkXCIgW2NsYXNzLmhpZGRlbl09XCJyZWFkb25seVwiIGRhdGEtY2xlYXIgW3RpdGxlXT1cImxhYmVscygnZGF0ZXBpY2tlci5kZWxldGUnKVwiPjxpIGNsYXNzPVwiZmEgZmEtdGltZXMgZGVsZXRlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbjwvZGl2PlxuIl19
@@ -202,6 +202,8 @@ class DatepickerComponent extends OdeComponent {
202
202
  this.changeDate = new EventEmitter();
203
203
  this.onChangeCallback = NOOP;
204
204
  this.onTouchedCallback = NOOP;
205
+ this.onInputChangeObserver = null;
206
+ this.debounceTimer = null;
205
207
  }
206
208
  get value() {
207
209
  return this.innerValue;
@@ -250,23 +252,37 @@ class DatepickerComponent extends OdeComponent {
250
252
  altInput: !this.disabled,
251
253
  altFormat: 'd/m/Y',
252
254
  dateFormat: 'Y-m-d',
253
- allowInput: false,
255
+ allowInput: true,
254
256
  enableTime: this.enableTime,
255
257
  minDate: this.minDate,
256
258
  maxDate: this.maxDate,
257
259
  clickOpens: false,
258
260
  wrap: true,
259
- locale: datePickerLocale
261
+ locale: datePickerLocale,
262
+ onChange: (selectedDates, dateStr) => {
263
+ this.value = dateStr;
264
+ },
265
+ onClose: () => {
266
+ this.onTouchedCallback();
267
+ }
260
268
  };
261
269
  this.datePickerInst = new Flatpickr(this.datePickerElement.nativeElement, options);
262
270
  if (!this.disabled) {
271
+ // Add click handler for the alt input
263
272
  this.datePickerInst.altInput.addEventListener('click', e => {
264
273
  if (!this.readonly) {
265
274
  this.datePickerInst.toggle();
266
275
  }
267
276
  });
277
+ // Add debounced input handler for manual entry
278
+ this.datePickerInst.altInput.addEventListener('blur', e => {
279
+ const inputDate = this.datePickerInst.parseDate(this.datePickerInst.altInput.value, options.altFormat);
280
+ if (inputDate) {
281
+ this.datePickerInst.setDate(inputDate, true);
282
+ }
283
+ });
268
284
  }
269
- // Force updating the date input readonly attribute :
285
+ // Force updating the date input readonly attribute
270
286
  this.readonly = this._readonly;
271
287
  }
272
288
  ngOnDestroy() {