@acpaas-ui/ngx-forms 6.1.5 → 6.1.7

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.
@@ -3,6 +3,7 @@ import { Subject } from 'rxjs';
3
3
  import { takeUntil } from 'rxjs/operators';
4
4
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
5
5
  import { DateHelper } from '@acpaas-ui/ngx-utils';
6
+ import { TZDate } from '@date-fns/tz';
6
7
  import { FlyoutDirective } from '@acpaas-ui/ngx-flyout';
7
8
  import { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_MONTH_LABELS, CALENDAR_WEEKDAY_LABELS, } from '@acpaas-ui/ngx-calendar';
8
9
  import { DATEPICKER_SEPARATOR_CHAR, DATEPICKER_DEFAULT_ERROR_LABELS, DATEPICKER_ERROR_LABELS, } from '../../datepicker.conf';
@@ -87,10 +88,13 @@ export class DatepickerComponent {
87
88
  const date = DateHelper.parseDate(format, 'yyyy-MM-dd');
88
89
  if (date) {
89
90
  this.selectedDate = date;
90
- this.onChange(date.toISOString());
91
+ const brusselsDate = new TZDate(date, 'Europe/Brussels');
92
+ const year = brusselsDate.getFullYear();
93
+ const month = brusselsDate.getMonth();
94
+ const day = brusselsDate.getDate();
95
+ this.onChange(DateHelper.toUtcMidnightInBrussels(year, month, day));
91
96
  }
92
97
  else {
93
- // Change value with original value (and not null or '') so we can add an error in the validate function
94
98
  this.onChange(value);
95
99
  }
96
100
  }
@@ -119,12 +123,20 @@ export class DatepickerComponent {
119
123
  .build();
120
124
  }
121
125
  writeValue(value) {
122
- this.selectedDate =
123
- typeof value === 'string'
124
- ? this.isISODateFormat(value)
125
- ? new Date(value)
126
- : DateHelper.parseDate(value, 'dd/MM/yyyy')
127
- : value;
126
+ if (typeof value === 'string') {
127
+ if (this.isISODateFormat(value)) {
128
+ this.selectedDate = DateHelper.parseDate(value);
129
+ }
130
+ else {
131
+ this.selectedDate = DateHelper.parseDate(value, 'dd/MM/yyyy');
132
+ }
133
+ }
134
+ else if (value instanceof Date) {
135
+ this.selectedDate = value;
136
+ }
137
+ else {
138
+ this.selectedDate = null;
139
+ }
128
140
  const dateString = this.selectedDate ? this.formatDate(this.selectedDate) : '';
129
141
  this.formControl.setValue(dateString);
130
142
  }
@@ -293,4 +305,4 @@ export class DatepickerComponent {
293
305
  }], blur: [{
294
306
  type: Output
295
307
  }] }); })();
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RhdGVwaWNrZXIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFJTCxhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsdUJBQXVCLEdBS3hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFDL0IsdUJBQXVCLEdBQ3hCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUFZLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztJQzFDL0QsZ0NBQTJEO0lBQUEsWUFBVztJQUFBLGlCQUFROzs7SUFBaEQsMENBQWM7SUFBZSxlQUFXO0lBQVgsa0NBQVc7OztJQUN0RSxnQ0FBd0Q7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VUFBVSxFQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBQzt3QkFDbEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFDO3dCQUNsRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7c0JBOEJFLE1BQU07dUJBQUMscUJBQXFCOztzQkFDNUIsTUFBTTt1QkFBQyx1QkFBdUI7O3NCQUM5QixNQUFNO3VCQUFDLHVCQUF1Qjt1SEE3QmEsTUFBTTtrQkFBbkQsU0FBUzttQkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ25DLEVBQUU7a0JBQVYsS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBRU4sR0FBRztrQkFERixLQUFLO1lBR04sR0FBRztrQkFERixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csdUJBQXVCO2tCQUEvQixLQUFLO1lBR0ksSUFBSTtrQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlciwgRGF0ZVJhbmdlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtdXRpbHMnO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7XG4gIENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICBDQUxFTkRBUl9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX1dFRUtEQVlfTEFCRUxTLFxuICBDYWxlbmRhclNlcnZpY2UsXG4gIERhdGVwaWNrZXJSZXN1bHQsXG4gIFdlZWtkYXlMYWJlbHNDb25maWcsXG4gIE1vbnRoTGFiZWxzQ29uZmlnLFxufSBmcm9tICdAYWNwYWFzLXVpL25neC1jYWxlbmRhcic7XG5cbmltcG9ydCB7XG4gIERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVIsXG4gIERBVEVQSUNLRVJfREVGQVVMVF9FUlJPUl9MQUJFTFMsXG4gIERBVEVQSUNLRVJfRVJST1JfTEFCRUxTLFxufSBmcm9tICcuLi8uLi9kYXRlcGlja2VyLmNvbmYnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlclZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuLi8uLi90eXBlcy9kYXRlcGlja2VyLnR5cGVzJztcbmltcG9ydCB7IEludGVydmFsLCBJbnRlcnZhbEJ1aWxkZXIgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVwaWNrZXJDb21wb25lbnQpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1mb3J3YXJkLXJlZlxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWZvcndhcmQtcmVmXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBAVmlld0NoaWxkKEZseW91dERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgZmx5b3V0OiBGbHlvdXREaXJlY3RpdmU7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnZGQvbW0veXl5eSc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJhbmdlOiBEYXRlUmFuZ2U7XG4gIEBJbnB1dCgpXG4gIG1pbjogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIG1heDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogJ29mZic7XG4gIEBJbnB1dCgpIHdlZWtkYXlMYWJlbHM6IFdlZWtkYXlMYWJlbHNDb25maWc7XG4gIEBJbnB1dCgpIG1vbnRoTGFiZWxzOiBNb250aExhYmVsc0NvbmZpZztcbiAgQElucHV0KCkgYXJpYU9wZW5EYXRlcGlja2VyTGFiZWwgPSAnT3BlbiBrYWxlbmRlcic7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHVibGljIHNlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIGludGVydmFsOiBJbnRlcnZhbC5JSW50ZXJ2YWw8RGF0ZT47XG5cbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENBTEVOREFSX01PTlRIX0xBQkVMUykgcHJpdmF0ZSBtb2R1bGVNb250aExhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfV0VFS0RBWV9MQUJFTFMpIHByaXZhdGUgbW9kdWxlV2Vla2RheUxhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfV0VFS0RBWV9MQUJFTFMsXG4gICAgQEluamVjdChEQVRFUElDS0VSX0VSUk9SX0xBQkVMUykgcHJpdmF0ZSBlcnJvckxhYmVscyA9IERBVEVQSUNLRVJfREVGQVVMVF9FUlJPUl9MQUJFTFMsXG4gICAgcHVibGljIGNhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndlZWtkYXlMYWJlbHMgPSB0aGlzLndlZWtkYXlMYWJlbHMgfHwgdGhpcy5tb2R1bGVXZWVrZGF5TGFiZWxzO1xuICAgIHRoaXMubW9udGhMYWJlbHMgPSB0aGlzLm1vbnRoTGFiZWxzIHx8IHRoaXMubW9kdWxlTW9udGhMYWJlbHM7XG4gICAgdGhpcy5jcmVhdGVJbnRlcnZhbCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWQgfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHZhbHVlLnNwbGl0KERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVIpLnJldmVyc2UoKS5qb2luKCctJyk7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBEYXRlSGVscGVyLnBhcnNlRGF0ZShmb3JtYXQsICd5eXl5LU1NLWRkJyk7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZS50b0lTT1N0cmluZygpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBDaGFuZ2UgdmFsdWUgd2l0aCBvcmlnaW5hbCB2YWx1ZSAoYW5kIG5vdCBudWxsIG9yICcnKSBzbyB3ZSBjYW4gYWRkIGFuIGVycm9yIGluIHRoZSB2YWxpZGF0ZSBmdW5jdGlvblxuICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5taW4gfHwgY2hhbmdlcy5tYXgpIHtcbiAgICAgIHRoaXMuY3JlYXRlSW50ZXJ2YWwoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUludGVydmFsKCkge1xuICAgIGlmICghdGhpcy5taW4gJiYgIXRoaXMubWF4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENyZWF0ZSBhbiBpbnRlcnZhbCBpZiBtaW4vbWF4IGlzIGZpbGxlZCBpblxuICAgIHRoaXMuaW50ZXJ2YWwgPSBJbnRlcnZhbEJ1aWxkZXIuZGF0ZUludGVydmFsKFxuICAgICAgdGhpcy5taW4gPyBuZXcgRGF0ZSh0aGlzLm1pbikgOiBudWxsLFxuICAgICAgdGhpcy5tYXggPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiBudWxsXG4gICAgKVxuICAgICAgLm5vdCgpXG4gICAgICAuYnVpbGQoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPVxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICA/IHRoaXMuaXNJU09EYXRlRm9ybWF0KHZhbHVlKVxuICAgICAgICAgID8gbmV3IERhdGUodmFsdWUpXG4gICAgICAgICAgOiBEYXRlSGVscGVyLnBhcnNlRGF0ZSh2YWx1ZSwgJ2RkL01NL3l5eXknKVxuICAgICAgICA6IHZhbHVlO1xuICAgIGNvbnN0IGRhdGVTdHJpbmcgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSkgOiAnJztcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGRhdGVTdHJpbmcpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IChyZXM6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIGlmIChpc0Rpc2FibGVkICYmIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzRGlzYWJsZWQgJiYgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGVGcm9tQ2FsZW5kYXIocmVzdWx0OiBEYXRlcGlja2VyUmVzdWx0KTogdm9pZCB7XG4gICAgaWYgKHJlc3VsdC5jb21wbGV0ZSkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdERhdGUocmVzdWx0LmRhdGUpKTtcbiAgICAgIHRoaXMuZmx5b3V0LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERhdGVIZWxwZXIuZm9ybWF0RGF0ZShkYXRlLCAnREQvTU0vWVlZWScsIHtcbiAgICAgIGxlYWRpbmdaZXJvOiB0cnVlLFxuICAgICAgbW9udGhMYWJlbHM6IHRoaXMubW9udGhMYWJlbHMsXG4gICAgICB3ZWVrZGF5TGFiZWxzOiB0aGlzLndlZWtkYXlMYWJlbHMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY3RybDogVW50eXBlZEZvcm1Db250cm9sKTogRGF0ZXBpY2tlclZhbGlkYXRpb25FcnJvcnMge1xuICAgIC8vIG5vIGVycm9yIG9uIGVtcHR5IHZhbHVlIChhZGQgcmVxdWlyZWQgdmFsaWRhdG9yIGluIGFwcClcbiAgICBpZiAoY3RybC52YWx1ZSA9PT0gJycgfHwgY3RybC52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gdGhyb3cgZm9ybWF0IGVycm9yIGlmIG5vIHZhbGlkIGRhdGUgd2FzIHByb3ZpZGVkXG4gICAgY29uc3QgZGF0ZSA9IERhdGVIZWxwZXIucGFyc2VEYXRlKGN0cmwudmFsdWUpO1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9ybWF0OiB0aGlzLmVycm9yTGFiZWxzLkVSUk9SU19JTlZBTElEX0RBVEUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIG5vIGVycm9yIGlmIHZhbGlkIGRhdGUgYW4gbm8gcmFuZ2UgcHJvdmlkZWRcbiAgICBpZiAoIXRoaXMucmFuZ2UgfHwgIXRoaXMucmFuZ2UubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB0aHJvdyBlcnJvciB3aGVuIG91dCBvZiByYW5nZVxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuZ2V0UmFuZ2VGb3JEYXRlKGRhdGUsIHRoaXMucmFuZ2UpO1xuXG4gICAgcmV0dXJuIHJhbmdlLmluZGV4T2YoZGF0ZS5nZXREYXRlKCkpID49IDBcbiAgICAgID8ge1xuICAgICAgICAgIHJhbmdlOiB0aGlzLmVycm9yTGFiZWxzLkVSUk9SU19JTlZBTElEX1JBTkdFLFxuICAgICAgICB9XG4gICAgICA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQmx1cihlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYmx1ci5lbWl0KGUpO1xuICAgIHRoaXMub25Ub3VjaGVkKGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHJlczogYW55KSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgaXNJU09EYXRlRm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL1xcZHs0fS1cXGR7Mn0tXFxkezJ9VC4qLyk7XG4gIH1cbn1cbiIsIjxkaXYgYXJpYS1oYXNwb3B1cD1cImdyaWRcIiBhdWlGbHlvdXQgY2xhc3M9XCJhdWktZGF0ZXBpY2tlciBhLWlucHV0IGhhcy1pY29uLXJpZ2h0XCI+XG4gIDxsYWJlbCBjbGFzcz1cImEtaW5wdXRfX2xhYmVsXCIgZm9yPVwie3sgaWQgfX1cIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICA8c21hbGwgY2xhc3M9XCJhLWlucHV0X19kZXNjcmlwdGlvblwiICpuZ0lmPVwiZGVzY3JpcHRpb25cIj4ge3sgZGVzY3JpcHRpb24gfX08L3NtYWxsPlxuICA8ZGl2IGNsYXNzPVwiYS1pbnB1dF9fd3JhcHBlclwiPlxuICAgIDxpbnB1dFxuICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgaWQ9XCJ7eyBpZCB9fVwiXG4gICAgICBsYWJlbD1cIlBpY2sgZGF0ZVwiXG4gICAgICBkZXNjcmlwdGlvbj1cIkRlc2NyaXB0aW9uXCJcbiAgICAgIG5hbWU9XCJ7eyBuYW1lIH19XCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRGlzYWJsZWRcIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBuYW1lPVwiYWktY2FsZW5kYXJcIlxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRGlzYWJsZWRcIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBhdWlGbHlvdXRBY3Rpb25cbiAgICAgICAgW29wZW5PbkZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgbmFtZT1cImFpLWNhbGVuZGFyXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiaXMtY2xpY2thYmxlXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYU9wZW5EYXRlcGlja2VyTGFiZWxcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEaXNhYmxlZFwiPlxuICAgICAgPGRpdiBhdWlGbHlvdXRab25lIGNsYXNzPVwibS1kYXRlcGlja2VyIG0tZGF0ZXBpY2tlci0tZml4ZWRcIiByb2xlPVwiZGlhbG9nXCI+XG4gICAgICAgIDxhdWktY2FsZW5kYXJcbiAgICAgICAgICAoc2VsZWN0RGF0ZSk9XCJzZWxlY3REYXRlRnJvbUNhbGVuZGFyKCRldmVudClcIlxuICAgICAgICAgIFtyYW5nZV09XCJyYW5nZVwiXG4gICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbFwiXG4gICAgICAgICAgW3dlZWtkYXlMYWJlbHNdPVwid2Vla2RheUxhYmVsc1wiXG4gICAgICAgICAgW21vbnRoTGFiZWxzXT1cIm1vbnRoTGFiZWxzXCJcbiAgICAgICAgPjwvYXVpLWNhbGVuZGFyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RhdGVwaWNrZXIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFJTCxhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQix1QkFBdUIsR0FLeEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQix1QkFBdUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0lDM0MvRCxnQ0FBMkQ7SUFBQSxZQUFXO0lBQUEsaUJBQVE7OztJQUFoRCww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QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyx1QkFBdUI7a0JBQS9CLEtBQUs7WUFHSSxJQUFJO2tCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5pbXBvcnQgeyBUWkRhdGUgfSBmcm9tICdAZGF0ZS1mbnMvdHonO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7XG4gIENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICBDQUxFTkRBUl9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX1dFRUtEQVlfTEFCRUxTLFxuICBDYWxlbmRhclNlcnZpY2UsXG4gIERhdGVwaWNrZXJSZXN1bHQsXG4gIFdlZWtkYXlMYWJlbHNDb25maWcsXG4gIE1vbnRoTGFiZWxzQ29uZmlnLFxufSBmcm9tICdAYWNwYWFzLXVpL25neC1jYWxlbmRhcic7XG5cbmltcG9ydCB7XG4gIERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVIsXG4gIERBVEVQSUNLRVJfREVGQVVMVF9FUlJPUl9MQUJFTFMsXG4gIERBVEVQSUNLRVJfRVJST1JfTEFCRUxTLFxufSBmcm9tICcuLi8uLi9kYXRlcGlja2VyLmNvbmYnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlclZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuLi8uLi90eXBlcy9kYXRlcGlja2VyLnR5cGVzJztcbmltcG9ydCB7IEludGVydmFsLCBJbnRlcnZhbEJ1aWxkZXIgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVwaWNrZXJDb21wb25lbnQpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1mb3J3YXJkLXJlZlxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWZvcndhcmQtcmVmXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBAVmlld0NoaWxkKEZseW91dERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgZmx5b3V0OiBGbHlvdXREaXJlY3RpdmU7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnZGQvbW0veXl5eSc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJhbmdlOiBEYXRlUmFuZ2U7XG4gIEBJbnB1dCgpXG4gIG1pbjogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIG1heDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogJ29mZic7XG4gIEBJbnB1dCgpIHdlZWtkYXlMYWJlbHM6IFdlZWtkYXlMYWJlbHNDb25maWc7XG4gIEBJbnB1dCgpIG1vbnRoTGFiZWxzOiBNb250aExhYmVsc0NvbmZpZztcbiAgQElucHV0KCkgYXJpYU9wZW5EYXRlcGlja2VyTGFiZWwgPSAnT3BlbiBrYWxlbmRlcic7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHVibGljIHNlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIGludGVydmFsOiBJbnRlcnZhbC5JSW50ZXJ2YWw8RGF0ZT47XG5cbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENBTEVOREFSX01PTlRIX0xBQkVMUykgcHJpdmF0ZSBtb2R1bGVNb250aExhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfV0VFS0RBWV9MQUJFTFMpIHByaXZhdGUgbW9kdWxlV2Vla2RheUxhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfV0VFS0RBWV9MQUJFTFMsXG4gICAgQEluamVjdChEQVRFUElDS0VSX0VSUk9SX0xBQkVMUykgcHJpdmF0ZSBlcnJvckxhYmVscyA9IERBVEVQSUNLRVJfREVGQVVMVF9FUlJPUl9MQUJFTFMsXG4gICAgcHVibGljIGNhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndlZWtkYXlMYWJlbHMgPSB0aGlzLndlZWtkYXlMYWJlbHMgfHwgdGhpcy5tb2R1bGVXZWVrZGF5TGFiZWxzO1xuICAgIHRoaXMubW9udGhMYWJlbHMgPSB0aGlzLm1vbnRoTGFiZWxzIHx8IHRoaXMubW9kdWxlTW9udGhMYWJlbHM7XG4gICAgdGhpcy5jcmVhdGVJbnRlcnZhbCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWQgfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHZhbHVlLnNwbGl0KERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVIpLnJldmVyc2UoKS5qb2luKCctJyk7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBEYXRlSGVscGVyLnBhcnNlRGF0ZShmb3JtYXQsICd5eXl5LU1NLWRkJyk7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuICAgICAgICAgIGNvbnN0IGJydXNzZWxzRGF0ZSA9IG5ldyBUWkRhdGUoZGF0ZSwgJ0V1cm9wZS9CcnVzc2VscycpO1xuICAgICAgICAgIGNvbnN0IHllYXIgPSBicnVzc2Vsc0RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgICBjb25zdCBtb250aCA9IGJydXNzZWxzRGF0ZS5nZXRNb250aCgpO1xuICAgICAgICAgIGNvbnN0IGRheSA9IGJydXNzZWxzRGF0ZS5nZXREYXRlKCk7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShEYXRlSGVscGVyLnRvVXRjTWlkbmlnaHRJbkJydXNzZWxzKHllYXIsIG1vbnRoLCBkYXkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMubWluIHx8IGNoYW5nZXMubWF4KSB7XG4gICAgICB0aGlzLmNyZWF0ZUludGVydmFsKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnRlcnZhbCgpIHtcbiAgICBpZiAoIXRoaXMubWluICYmICF0aGlzLm1heCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBDcmVhdGUgYW4gaW50ZXJ2YWwgaWYgbWluL21heCBpcyBmaWxsZWQgaW5cbiAgICB0aGlzLmludGVydmFsID0gSW50ZXJ2YWxCdWlsZGVyLmRhdGVJbnRlcnZhbChcbiAgICAgIHRoaXMubWluID8gbmV3IERhdGUodGhpcy5taW4pIDogbnVsbCxcbiAgICAgIHRoaXMubWF4ID8gbmV3IERhdGUodGhpcy5tYXgpIDogbnVsbFxuICAgIClcbiAgICAgIC5ub3QoKVxuICAgICAgLmJ1aWxkKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgRGF0ZSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAodGhpcy5pc0lTT0RhdGVGb3JtYXQodmFsdWUpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBEYXRlSGVscGVyLnBhcnNlRGF0ZSh2YWx1ZSwgJ2RkL01NL3l5eXknKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGVTdHJpbmcgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSkgOiAnJztcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGRhdGVTdHJpbmcpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IChyZXM6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIGlmIChpc0Rpc2FibGVkICYmIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzRGlzYWJsZWQgJiYgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGVGcm9tQ2FsZW5kYXIocmVzdWx0OiBEYXRlcGlja2VyUmVzdWx0KTogdm9pZCB7XG4gICAgaWYgKHJlc3VsdC5jb21wbGV0ZSkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdERhdGUocmVzdWx0LmRhdGUpKTtcbiAgICAgIHRoaXMuZmx5b3V0LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERhdGVIZWxwZXIuZm9ybWF0RGF0ZShkYXRlLCAnREQvTU0vWVlZWScsIHtcbiAgICAgIGxlYWRpbmdaZXJvOiB0cnVlLFxuICAgICAgbW9udGhMYWJlbHM6IHRoaXMubW9udGhMYWJlbHMsXG4gICAgICB3ZWVrZGF5TGFiZWxzOiB0aGlzLndlZWtkYXlMYWJlbHMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY3RybDogVW50eXBlZEZvcm1Db250cm9sKTogRGF0ZXBpY2tlclZhbGlkYXRpb25FcnJvcnMge1xuICAgIC8vIG5vIGVycm9yIG9uIGVtcHR5IHZhbHVlIChhZGQgcmVxdWlyZWQgdmFsaWRhdG9yIGluIGFwcClcbiAgICBpZiAoY3RybC52YWx1ZSA9PT0gJycgfHwgY3RybC52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gdGhyb3cgZm9ybWF0IGVycm9yIGlmIG5vIHZhbGlkIGRhdGUgd2FzIHByb3ZpZGVkXG4gICAgY29uc3QgZGF0ZSA9IERhdGVIZWxwZXIucGFyc2VEYXRlKGN0cmwudmFsdWUpO1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9ybWF0OiB0aGlzLmVycm9yTGFiZWxzLkVSUk9SU19JTlZBTElEX0RBVEUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIG5vIGVycm9yIGlmIHZhbGlkIGRhdGUgYW4gbm8gcmFuZ2UgcHJvdmlkZWRcbiAgICBpZiAoIXRoaXMucmFuZ2UgfHwgIXRoaXMucmFuZ2UubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB0aHJvdyBlcnJvciB3aGVuIG91dCBvZiByYW5nZVxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuZ2V0UmFuZ2VGb3JEYXRlKGRhdGUsIHRoaXMucmFuZ2UpO1xuXG4gICAgcmV0dXJuIHJhbmdlLmluZGV4T2YoZGF0ZS5nZXREYXRlKCkpID49IDBcbiAgICAgID8ge1xuICAgICAgICAgIHJhbmdlOiB0aGlzLmVycm9yTGFiZWxzLkVSUk9SU19JTlZBTElEX1JBTkdFLFxuICAgICAgICB9XG4gICAgICA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQmx1cihlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYmx1ci5lbWl0KGUpO1xuICAgIHRoaXMub25Ub3VjaGVkKGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHJlczogYW55KSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgaXNJU09EYXRlRm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL1xcZHs0fS1cXGR7Mn0tXFxkezJ9VC4qLyk7XG4gIH1cbn1cbiIsIjxkaXYgYXJpYS1oYXNwb3B1cD1cImdyaWRcIiBhdWlGbHlvdXQgY2xhc3M9XCJhdWktZGF0ZXBpY2tlciBhLWlucHV0IGhhcy1pY29uLXJpZ2h0XCI+XG4gIDxsYWJlbCBjbGFzcz1cImEtaW5wdXRfX2xhYmVsXCIgZm9yPVwie3sgaWQgfX1cIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICA8c21hbGwgY2xhc3M9XCJhLWlucHV0X19kZXNjcmlwdGlvblwiICpuZ0lmPVwiZGVzY3JpcHRpb25cIj4ge3sgZGVzY3JpcHRpb24gfX08L3NtYWxsPlxuICA8ZGl2IGNsYXNzPVwiYS1pbnB1dF9fd3JhcHBlclwiPlxuICAgIDxpbnB1dFxuICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgaWQ9XCJ7eyBpZCB9fVwiXG4gICAgICBsYWJlbD1cIlBpY2sgZGF0ZVwiXG4gICAgICBkZXNjcmlwdGlvbj1cIkRlc2NyaXB0aW9uXCJcbiAgICAgIG5hbWU9XCJ7eyBuYW1lIH19XCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRGlzYWJsZWRcIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBuYW1lPVwiYWktY2FsZW5kYXJcIlxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRGlzYWJsZWRcIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBhdWlGbHlvdXRBY3Rpb25cbiAgICAgICAgW29wZW5PbkZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgbmFtZT1cImFpLWNhbGVuZGFyXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiaXMtY2xpY2thYmxlXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYU9wZW5EYXRlcGlja2VyTGFiZWxcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEaXNhYmxlZFwiPlxuICAgICAgPGRpdiBhdWlGbHlvdXRab25lIGNsYXNzPVwibS1kYXRlcGlja2VyIG0tZGF0ZXBpY2tlci0tZml4ZWRcIiByb2xlPVwiZGlhbG9nXCI+XG4gICAgICAgIDxhdWktY2FsZW5kYXJcbiAgICAgICAgICAoc2VsZWN0RGF0ZSk9XCJzZWxlY3REYXRlRnJvbUNhbGVuZGFyKCRldmVudClcIlxuICAgICAgICAgIFtyYW5nZV09XCJyYW5nZVwiXG4gICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbFwiXG4gICAgICAgICAgW3dlZWtkYXlMYWJlbHNdPVwid2Vla2RheUxhYmVsc1wiXG4gICAgICAgICAgW21vbnRoTGFiZWxzXT1cIm1vbnRoTGFiZWxzXCJcbiAgICAgICAgPjwvYXVpLWNhbGVuZGFyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -12,6 +12,7 @@ import { get, isEqual, debounce } from 'lodash-es';
12
12
  import { Subject, Observable } from 'rxjs';
13
13
  import { takeUntil } from 'rxjs/operators';
14
14
  import { DateHelper, IntervalBuilder } from '@acpaas-ui/ngx-utils';
15
+ import { TZDate } from '@date-fns/tz';
15
16
  import * as i1$2 from '@acpaas-ui/ngx-calendar';
16
17
  import { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_MONTH_LABELS, CALENDAR_WEEKDAY_LABELS, CalendarModule } from '@acpaas-ui/ngx-calendar';
17
18
  import * as i4$1 from '@acpaas-ui/ngx-icon';
@@ -527,10 +528,13 @@ class DatepickerComponent {
527
528
  const date = DateHelper.parseDate(format, 'yyyy-MM-dd');
528
529
  if (date) {
529
530
  this.selectedDate = date;
530
- this.onChange(date.toISOString());
531
+ const brusselsDate = new TZDate(date, 'Europe/Brussels');
532
+ const year = brusselsDate.getFullYear();
533
+ const month = brusselsDate.getMonth();
534
+ const day = brusselsDate.getDate();
535
+ this.onChange(DateHelper.toUtcMidnightInBrussels(year, month, day));
531
536
  }
532
537
  else {
533
- // Change value with original value (and not null or '') so we can add an error in the validate function
534
538
  this.onChange(value);
535
539
  }
536
540
  }
@@ -559,12 +563,20 @@ class DatepickerComponent {
559
563
  .build();
560
564
  }
561
565
  writeValue(value) {
562
- this.selectedDate =
563
- typeof value === 'string'
564
- ? this.isISODateFormat(value)
565
- ? new Date(value)
566
- : DateHelper.parseDate(value, 'dd/MM/yyyy')
567
- : value;
566
+ if (typeof value === 'string') {
567
+ if (this.isISODateFormat(value)) {
568
+ this.selectedDate = DateHelper.parseDate(value);
569
+ }
570
+ else {
571
+ this.selectedDate = DateHelper.parseDate(value, 'dd/MM/yyyy');
572
+ }
573
+ }
574
+ else if (value instanceof Date) {
575
+ this.selectedDate = value;
576
+ }
577
+ else {
578
+ this.selectedDate = null;
579
+ }
568
580
  const dateString = this.selectedDate ? this.formatDate(this.selectedDate) : '';
569
581
  this.formControl.setValue(dateString);
570
582
  }