ecabs-components 1.1.39 → 1.1.40
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.
- package/README.md +2 -1
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +24 -10
- package/fesm2022/ecabs-components.mjs +23 -9
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +5 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -98,4 +98,5 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
|
|
|
98
98
|
- **v1.1.35** — Add `waypointType` input to `EcabsAutoComplete`.
|
|
99
99
|
- Add `nativeElement` handles to custom inputs.
|
|
100
100
|
- **v1.1.38** — Use native `matDatepickerToggleIcon` in `EcabsDateTimePicker`.
|
|
101
|
-
- **v1.1.39** — Added date adapter to public api.
|
|
101
|
+
- **v1.1.39** — Added date adapter to public api.
|
|
102
|
+
- **v1.1.40** — `EcabsDateTimePicker`: Added support for preserving and returning `receivedValue` when there is no change in the input.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { format, isValid, parse, setHours, setMinutes, setSeconds, } from 'date-fns';
|
|
1
|
+
import { format, isSameMinute, isValid, parse, setHours, setMinutes, setSeconds, } from 'date-fns';
|
|
2
2
|
import { takeUntil } from 'rxjs';
|
|
3
3
|
import { DecimalPipe } from '@angular/common';
|
|
4
4
|
import { Component, forwardRef, Input, ViewChild, } from '@angular/core';
|
|
@@ -34,10 +34,14 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
34
34
|
cancelLabel;
|
|
35
35
|
applyLabel;
|
|
36
36
|
applyMinDateAuto = true;
|
|
37
|
+
/** When true, preserves the original value (with timezone) if user hasn't changed the date/time */
|
|
38
|
+
preserveOriginalValue = false;
|
|
37
39
|
_hours = '12';
|
|
38
40
|
_minutes = '00';
|
|
39
41
|
_seconds = '00';
|
|
40
42
|
_date;
|
|
43
|
+
/** Stores the original input value to preserve string format with timezone */
|
|
44
|
+
_originalValue;
|
|
41
45
|
_pickerValue;
|
|
42
46
|
val;
|
|
43
47
|
header = EcabsDateTimePickerHeaderComponent;
|
|
@@ -147,6 +151,10 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
147
151
|
onChange = () => { };
|
|
148
152
|
onTouch = () => { };
|
|
149
153
|
writeValue(value) {
|
|
154
|
+
// Store original value on first write to preserve string format with timezone
|
|
155
|
+
if (this.preserveOriginalValue && !this._originalValue && value) {
|
|
156
|
+
this._originalValue = value;
|
|
157
|
+
}
|
|
150
158
|
this.value = value;
|
|
151
159
|
}
|
|
152
160
|
registerOnChange(fn) {
|
|
@@ -181,17 +189,21 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
181
189
|
return this.decimalPipe.transform(num, '2.0-0') ?? '00';
|
|
182
190
|
}
|
|
183
191
|
setValues(date) {
|
|
184
|
-
|
|
185
|
-
this.
|
|
186
|
-
this.
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
192
|
+
// Preserve original value if time unchanged
|
|
193
|
+
const shouldReturnOriginalValue = this._originalValue && isSameMinute(new Date(this._originalValue), date);
|
|
194
|
+
const valueToEmit = shouldReturnOriginalValue ? this._originalValue : date;
|
|
195
|
+
this.onChange(valueToEmit);
|
|
196
|
+
this.onTouch(valueToEmit);
|
|
197
|
+
const dateToUse = valueToEmit ? new Date(valueToEmit) : date;
|
|
198
|
+
this._date = dateToUse;
|
|
199
|
+
if (dateToUse && isValid(dateToUse)) {
|
|
200
|
+
this.hours = dateToUse.getHours().toString();
|
|
201
|
+
this.minutes = dateToUse.getMinutes().toString();
|
|
202
|
+
this.seconds = dateToUse.getSeconds().toString();
|
|
191
203
|
}
|
|
192
204
|
}
|
|
193
205
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimePickerComponent, deps: [{ token: i0.Injector }, { token: i1.DecimalPipe }, { token: i0.ChangeDetectorRef }, { token: i2.EcabsDatePickerHeaderService }, { token: i3.UnsubscribeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
194
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimePickerComponent, selector: "ecabs-date-time-picker", inputs: { minDate: "minDate", maxDate: "maxDate", touchUi: "touchUi", hideSeconds: "hideSeconds", cancelLabel: "cancelLabel", applyLabel: "applyLabel", applyMinDateAuto: "applyMinDateAuto" }, providers: [
|
|
206
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimePickerComponent, selector: "ecabs-date-time-picker", inputs: { minDate: "minDate", maxDate: "maxDate", touchUi: "touchUi", hideSeconds: "hideSeconds", cancelLabel: "cancelLabel", applyLabel: "applyLabel", applyMinDateAuto: "applyMinDateAuto", preserveOriginalValue: "preserveOriginalValue" }, providers: [
|
|
195
207
|
{
|
|
196
208
|
provide: NG_VALUE_ACCESSOR,
|
|
197
209
|
useExisting: forwardRef(() => EcabsDateTimePickerComponent),
|
|
@@ -232,5 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
232
244
|
type: Input
|
|
233
245
|
}], applyMinDateAuto: [{
|
|
234
246
|
type: Input
|
|
247
|
+
}], preserveOriginalValue: [{
|
|
248
|
+
type: Input
|
|
235
249
|
}] } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXRpbWUtcGlja2VyL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxFQUNMLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxHQUNYLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFHTCxTQUFTLEVBRVQsVUFBVSxFQUVWLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEdBRVYsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLHlCQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBRzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLG9GQUFvRixDQUFDOzs7Ozs7Ozs7Ozs7OztBQWlCeEksTUFBTSxPQUFPLDRCQUNYLFNBQVEseUJBQXlCO0lBNEhkO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUE1SG5CLGNBQWMsQ0FBYTtJQUczQixlQUFlLENBQXNCO0lBRTVCLE9BQU8sQ0FBTztJQUNkLE9BQU8sQ0FBTztJQUNk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QUFXO1lBQ1gsa0JBQWtCO1NBQ25CLCtQQ2hESCxnM0ZBK0VBOzs0RkQ3QmEsNEJBQTRCO2tCQWR4QyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsV0FBVzt3QkFDWCxrQkFBa0I7cUJBQ25CO3FPQU9ELGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTlDLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc3QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGZvcm1hdCxcclxuICBpc1ZhbGlkLFxyXG4gIHBhcnNlLFxyXG4gIHNldEhvdXJzLFxyXG4gIHNldE1pbnV0ZXMsXHJcbiAgc2V0U2Vjb25kcyxcclxufSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5nQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVQaWNrZXJUcmFuc2xhdGlvbnMgfSBmcm9tICcuLi9iYXNlL21vZGVscy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMubW9kZWxzJztcclxuaW1wb3J0IHsgRWNhYnNEYXRlUGlja2VySGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2Jhc2Uvc2VydmljZXMvZWNhYnMtZGF0ZS1waWNrZXItdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVbnN1YnNjcmliZVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL3Vuc3Vic2NyaWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVUaW1lUGlja2VySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VjYWJzLWRhdGUtdGltZS1waWNrZXItaGVhZGVyL2VjYWJzLWRhdGUtdGltZS1waWNrZXItaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtZGF0ZS10aW1lLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVjYWJzRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBEZWNpbWFsUGlwZSxcclxuICAgIFVuc3Vic2NyaWJlU2VydmljZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEYXRlVGltZVBpY2tlckNvbXBvbmVudFxyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uSW5pdFxyXG57XHJcbiAgQFZpZXdDaGlsZCgnbWF0Q3VzdG9tSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBtYXRDdXN0b21JbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgbWF0Q3VzdG9tUGlja2VyOiBNYXREYXRlcGlja2VyPERhdGU+O1xyXG5cclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdG91Y2hVaSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpZGVTZWNvbmRzID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjYW5jZWxMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcGx5TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBhcHBseU1pbkRhdGVBdXRvID0gdHJ1ZTtcclxuXHJcbiAgX2hvdXJzID0gJzEyJztcclxuICBfbWludXRlcyA9ICcwMCc7XHJcbiAgX3NlY29uZHMgPSAnMDAnO1xyXG4gIF9kYXRlOiBEYXRlO1xyXG4gIF9waWNrZXJWYWx1ZTogc3RyaW5nO1xyXG4gIHZhbDogRGF0ZTtcclxuICBoZWFkZXIgPSBFY2Fic0RhdGVUaW1lUGlja2VySGVhZGVyQ29tcG9uZW50O1xyXG4gIG1heFZhbHVlSG91cnMgPSAyMztcclxuICBtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzID0gNTk7XHJcbiAgcHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSA9IGZhbHNlO1xyXG4gIHJ1blRpbWVvdXQgPSBmYWxzZTtcclxuICB0cmFuc2xhdGlvbkNvbmZpZzogRWNhYnNEYXRlUGlja2VyVHJhbnNsYXRpb25zO1xyXG4gIGlzRW1wdHlGb3JtYXQgPSAnXy9fXy9fX19fLCBfXzpfXyc7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLnZhbDtcclxuICB9XHJcblxyXG4gIGdldCBwaWNrZXJWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BpY2tlclZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhvdXJzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faG91cnM7XHJcbiAgfVxyXG5cclxuICBnZXQgbWludXRlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbnV0ZXM7XHJcbiAgfVxyXG5cclxuICBnZXQgc2Vjb25kcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZHM7XHJcbiAgfVxyXG5cclxuICBzZXQgaG91cnModmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5faG91cnMgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX2hvdXJzID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IG1pbnV0ZXModmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fbWludXRlcyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fbWludXRlcyA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBzZWNvbmRzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3NlY29uZHMgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3NlY29uZHMgPSB0aGlzLnJvdW5kTnVtYmVyKCt2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsKSB7XHJcbiAgICBpZiAodmFsICYmIHRoaXMudmFsPy5nZXRUaW1lKCkgIT09IG5ldyBEYXRlKHZhbCkuZ2V0VGltZSgpKSB7XHJcbiAgICAgIGlmICghdGhpcy5wcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5waWNrZXJWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZVRpbWUodmFsKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBwaWNrZXJWYWx1ZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKCF2YWwgfHwgdmFsID09PSB0aGlzLmlzRW1wdHlGb3JtYXQpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5zZXRWYWx1ZXModW5kZWZpbmVkKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRlID0gcGFyc2UoXHJcbiAgICAgIHZhbC5yZXBsYWNlKCdfJywgJycpLFxyXG4gICAgICB0aGlzLmhpZGVTZWNvbmRzID8gYGRkL01NL3l5eXksIEhIOm1tYCA6IGBkZC9NTS95eXl5LCBISDptbTpzc2AsXHJcbiAgICAgIG5ldyBEYXRlKCksXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpc1ZhbGlkKGRhdGUpICYmIHRoaXMuX3BpY2tlclZhbHVlICE9PSB2YWwpIHtcclxuICAgICAgaWYgKHRoaXMubWluRGF0ZSAmJiBkYXRlIDwgdGhpcy5taW5EYXRlICYmIHRoaXMuYXBwbHlNaW5EYXRlQXV0bykge1xyXG4gICAgICAgIHRoaXMuc2V0VmFsdWVzKHRoaXMubWluRGF0ZSk7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5wcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW5EYXRlO1xyXG4gICAgICAgIHRoaXMucnVuVGltZW91dCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoUGlja2VyVmFsdWUodGhpcy5taW5EYXRlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5tYXhEYXRlICYmIGRhdGUgPiB0aGlzLm1heERhdGUpIHtcclxuICAgICAgICB0aGlzLnNldFZhbHVlcyh0aGlzLm1heERhdGUpO1xyXG4gICAgICAgIHRoaXMuX3BpY2tlclZhbHVlID0gdmFsO1xyXG4gICAgICAgIHRoaXMucHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWF4RGF0ZTtcclxuICAgICAgICB0aGlzLnJ1blRpbWVvdXQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFBpY2tlclZhbHVlKHRoaXMubWF4RGF0ZSk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5ydW5UaW1lb3V0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX3BpY2tlclZhbHVlID0gdmFsO1xyXG4gICAgICB0aGlzLnByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUgPSB0cnVlO1xyXG4gICAgICB0aGlzLnZhbHVlID0gZGF0ZTtcclxuICAgICAgdGhpcy5zZXRWYWx1ZXMoZGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWNhYnNEYXRlUGlja2VySGVhZGVyU2VydmljZTogRWNhYnNEYXRlUGlja2VySGVhZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmVTZXJ2aWNlOiBVbnN1YnNjcmliZVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2VcclxuICAgICAgLmdldENvbmZpZygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlU2VydmljZS5zdWJzY3JpcHRpb24oKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4gKHRoaXMudHJhbnNsYXRpb25Db25maWcgPSBjb25maWcpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbERhdGUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcblxyXG4gICAgICAgIGlmIChjb250cm9sRGF0ZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZXMoY29udHJvbERhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMTApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb25BcHBseSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9kYXRlICYmIHRoaXMuX3NlY29uZHMgJiYgdGhpcy5fbWludXRlcyAmJiB0aGlzLl9ob3Vycykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gc2V0U2Vjb25kcyhcclxuICAgICAgICBzZXRNaW51dGVzKFxyXG4gICAgICAgICAgc2V0SG91cnMobmV3IERhdGUodGhpcy5fZGF0ZSksICt0aGlzLl9ob3VycyksXHJcbiAgICAgICAgICArdGhpcy5fbWludXRlcyxcclxuICAgICAgICApLFxyXG4gICAgICAgICt0aGlzLl9zZWNvbmRzLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFBpY2tlclZhbHVlKGRhdGU6IERhdGUpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5ydW5UaW1lb3V0KSB7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB0aGlzLmZvcm1hdERhdGVUaW1lKGRhdGUpO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9LCAzMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0RGF0ZVRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcblxyXG4gICAgaWYgKGRhdGUgJiYgaXNWYWxpZChuZXcgRGF0ZShkYXRlKSkpIHtcclxuICAgICAgcmVzdWx0ID0gdGhpcy5oaWRlU2Vjb25kc1xyXG4gICAgICAgID8gZm9ybWF0KG5ldyBEYXRlKGRhdGUpLCBgZGQvTU0veXl5eSwgSEg6bW1gKVxyXG4gICAgICAgIDogZm9ybWF0KG5ldyBEYXRlKGRhdGUpLCBgZGQvTU0veXl5eSwgSEg6bW06c3NgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZE51bWJlcihudW06IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKG51bSwgJzIuMC0wJykgPz8gJzAwJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWVzKGRhdGU6IERhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UoZGF0ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2goZGF0ZSk7XHJcbiAgICB0aGlzLl9kYXRlID0gZGF0ZTtcclxuXHJcbiAgICBpZiAoZGF0ZSAmJiBpc1ZhbGlkKGRhdGUpKSB7XHJcbiAgICAgIHRoaXMuaG91cnMgPSBkYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5taW51dGVzID0gZGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5zZWNvbmRzID0gZGF0ZS5nZXRTZWNvbmRzKCkudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXdyYXBwZXIgdy1mdWxsXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgY2xhc3M9XCJmYWtlLWlucHV0XCJcclxuICAgICAgW2lkXT1cIl9kYXRlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJfZGF0ZVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiXHJcbiAgICAgIFttaW5dPVwibWluRGF0ZVwiXHJcbiAgICAgIFttYXhdPVwibWF4RGF0ZVwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImhlYWRlclwiIFt0b3VjaFVpXT1cInRvdWNoVWlcIiBjbGFzcz1cImRhdGVwaWNrZXItdWlcIj5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyLWFjdGlvbnM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLS1pbnB1dHNcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICBlY2Fic0RpZ2l0c09ubHlcclxuICAgICAgICAgICAgICBlY2Fic051bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtpZF09XCJob3Vyc1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIl9ob3Vyc1wiXHJcbiAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlSG91cnNcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaG91cnNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPjo8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdGltZVwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cIm1pbnV0ZXNcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWludXRlc1wiXHJcbiAgICAgICAgICAgICAgZWNhYnNEaWdpdHNPbmx5XHJcbiAgICAgICAgICAgICAgZWNhYnNOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVNaW51dGVzU2Vjb25kc1wiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVTZWNvbmRzXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj46PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICAgIFtpZF09XCJzZWNvbmRzXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2Vjb25kc1wiXHJcbiAgICAgICAgICAgICAgICBlY2Fic0RpZ2l0c09ubHlcclxuICAgICAgICAgICAgICAgIGVjYWJzTnVtYmVyQm9yZGVyXHJcbiAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxlY2Ficy1kYXRlLXBpY2tlci1hY3Rpb25zIFthcHBseUxhYmVsXT1cImFwcGx5TGFiZWwgPz8gdHJhbnNsYXRpb25Db25maWc/LmFwcGx5TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbmNlbExhYmVsXT1cImNhbmNlbExhYmVsID8/IHRyYW5zbGF0aW9uQ29uZmlnPy5jYW5jZWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkpPVwib25BcHBseSgpXCI+XHJcbiAgICAgICAgICA8L2VjYWJzLWRhdGUtcGlja2VyLWFjdGlvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cclxuICAgIDwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICA8aW5wdXQgI21hdEN1c3RvbUlucHV0XHJcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB3LWZ1bGwgZGF0ZS1pbnB1dFwiXHJcbiAgICAgICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICAgICAgIFsobmdNb2RlbCldPVwicGlja2VyVmFsdWVcIlxyXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICBlY2Fic01hc2tEYXRlXHJcbiAgICAgICAgICAgW2lzRGF0ZVRpbWVNYXNrXT1cInRydWVcIlxyXG4gICAgICAgICAgIFtjb25zaWRlclNlY29uZHNdPVwiIWhpZGVTZWNvbmRzXCJcclxuICAgICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgLz5cclxuXHJcbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPlxyXG4gICAgICA8bWF0LWljb24gbWF0RGF0ZXBpY2tlclRvZ2dsZUljb25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTUwMFwiPlxyXG4gICAgICAgIGNhbGVuZGFyX3RvZGF5XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICA8L2Rpdj5cclxuPC9lY2Ficy1lbGVtZW50LXdyYXBwZXI+XHJcbiJdfQ==
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXRpbWUtcGlja2VyL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsR0FDWCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBR0wsU0FBUyxFQUVULFVBQVUsRUFFVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvRkFBb0YsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQnhJLE1BQU0sT0FBTyw0QkFDWCxTQUFRLHlCQUF5QjtJQWdJZDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBaEluQixjQUFjLENBQWE7SUFHM0IsZUFBZSxDQUFzQjtJQUU1QixPQUFPLENBQU87SUFDZCxPQUFP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QUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgZm9ybWF0LFxyXG4gIGlzU2FtZU1pbnV0ZSxcclxuICBpc1ZhbGlkLFxyXG4gIHBhcnNlLFxyXG4gIHNldEhvdXJzLFxyXG4gIHNldE1pbnV0ZXMsXHJcbiAgc2V0U2Vjb25kcyxcclxufSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5nQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVQaWNrZXJUcmFuc2xhdGlvbnMgfSBmcm9tICcuLi9iYXNlL21vZGVscy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMubW9kZWxzJztcclxuaW1wb3J0IHsgRWNhYnNEYXRlUGlja2VySGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2Jhc2Uvc2VydmljZXMvZWNhYnMtZGF0ZS1waWNrZXItdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVbnN1YnNjcmliZVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL3Vuc3Vic2NyaWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVUaW1lUGlja2VySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VjYWJzLWRhdGUtdGltZS1waWNrZXItaGVhZGVyL2VjYWJzLWRhdGUtdGltZS1waWNrZXItaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtZGF0ZS10aW1lLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVjYWJzRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBEZWNpbWFsUGlwZSxcclxuICAgIFVuc3Vic2NyaWJlU2VydmljZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEYXRlVGltZVBpY2tlckNvbXBvbmVudFxyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uSW5pdFxyXG57XHJcbiAgQFZpZXdDaGlsZCgnbWF0Q3VzdG9tSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBtYXRDdXN0b21JbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgbWF0Q3VzdG9tUGlja2VyOiBNYXREYXRlcGlja2VyPERhdGU+O1xyXG5cclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdG91Y2hVaSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpZGVTZWNvbmRzID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjYW5jZWxMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcGx5TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBhcHBseU1pbkRhdGVBdXRvID0gdHJ1ZTtcclxuICAvKiogV2hlbiB0cnVlLCBwcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsIHZhbHVlICh3aXRoIHRpbWV6b25lKSBpZiB1c2VyIGhhc24ndCBjaGFuZ2VkIHRoZSBkYXRlL3RpbWUgKi9cclxuICBASW5wdXQoKSBwcmVzZXJ2ZU9yaWdpbmFsVmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgX2hvdXJzID0gJzEyJztcclxuICBfbWludXRlcyA9ICcwMCc7XHJcbiAgX3NlY29uZHMgPSAnMDAnO1xyXG4gIF9kYXRlOiBEYXRlO1xyXG4gIC8qKiBTdG9yZXMgdGhlIG9yaWdpbmFsIGlucHV0IHZhbHVlIHRvIHByZXNlcnZlIHN0cmluZyBmb3JtYXQgd2l0aCB0aW1lem9uZSAqL1xyXG4gIHByaXZhdGUgX29yaWdpbmFsVmFsdWU6IERhdGUgfCBzdHJpbmc7XHJcbiAgX3BpY2tlclZhbHVlOiBzdHJpbmc7XHJcbiAgdmFsOiBEYXRlO1xyXG4gIGhlYWRlciA9IEVjYWJzRGF0ZVRpbWVQaWNrZXJIZWFkZXJDb21wb25lbnQ7XHJcbiAgbWF4VmFsdWVIb3VycyA9IDIzO1xyXG4gIG1heFZhbHVlTWludXRlc1NlY29uZHMgPSA1OTtcclxuICBwcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlID0gZmFsc2U7XHJcbiAgcnVuVGltZW91dCA9IGZhbHNlO1xyXG4gIHRyYW5zbGF0aW9uQ29uZmlnOiBFY2Fic0RhdGVQaWNrZXJUcmFuc2xhdGlvbnM7XHJcbiAgaXNFbXB0eUZvcm1hdCA9ICdfL19fL19fX18sIF9fOl9fJztcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBpY2tlclZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGlja2VyVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaG91cnMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9ob3VycztcclxuICB9XHJcblxyXG4gIGdldCBtaW51dGVzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWludXRlcztcclxuICB9XHJcblxyXG4gIGdldCBzZWNvbmRzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kcztcclxuICB9XHJcblxyXG4gIHNldCBob3Vycyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9ob3VycyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5faG91cnMgPSB0aGlzLnJvdW5kTnVtYmVyKCt2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgbWludXRlcyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9taW51dGVzICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9taW51dGVzID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IHNlY29uZHModmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fc2Vjb25kcyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWwpIHtcclxuICAgIGlmICh2YWwgJiYgdGhpcy52YWw/LmdldFRpbWUoKSAhPT0gbmV3IERhdGUodmFsKS5nZXRUaW1lKCkpIHtcclxuICAgICAgaWYgKCF0aGlzLnByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUpIHtcclxuICAgICAgICB0aGlzLnBpY2tlclZhbHVlID0gdGhpcy5mb3JtYXREYXRlVGltZSh2YWwpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IHBpY2tlclZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXZhbCB8fCB2YWwgPT09IHRoaXMuaXNFbXB0eUZvcm1hdCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnNldFZhbHVlcyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRhdGUgPSBwYXJzZShcclxuICAgICAgdmFsLnJlcGxhY2UoJ18nLCAnJyksXHJcbiAgICAgIHRoaXMuaGlkZVNlY29uZHMgPyBgZGQvTU0veXl5eSwgSEg6bW1gIDogYGRkL01NL3l5eXksIEhIOm1tOnNzYCxcclxuICAgICAgbmV3IERhdGUoKSxcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGlzVmFsaWQoZGF0ZSkgJiYgdGhpcy5fcGlja2VyVmFsdWUgIT09IHZhbCkge1xyXG4gICAgICBpZiAodGhpcy5taW5EYXRlICYmIGRhdGUgPCB0aGlzLm1pbkRhdGUgJiYgdGhpcy5hcHBseU1pbkRhdGVBdXRvKSB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZXModGhpcy5taW5EYXRlKTtcclxuICAgICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgICB0aGlzLnByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbkRhdGU7XHJcbiAgICAgICAgdGhpcy5ydW5UaW1lb3V0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hQaWNrZXJWYWx1ZSh0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm1heERhdGUgJiYgZGF0ZSA+IHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0VmFsdWVzKHRoaXMubWF4RGF0ZSk7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5wcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXhEYXRlO1xyXG4gICAgICAgIHRoaXMucnVuVGltZW91dCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoUGlja2VyVmFsdWUodGhpcy5tYXhEYXRlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJ1blRpbWVvdXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgIHRoaXMucHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlO1xyXG4gICAgICB0aGlzLnNldFZhbHVlcyhkYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlOiBFY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZVNlcnZpY2U6IFVuc3Vic2NyaWJlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWNhYnNEYXRlUGlja2VySGVhZGVyU2VydmljZVxyXG4gICAgICAuZ2V0Q29uZmlnKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLnN1YnNjcmlwdGlvbigpKSlcclxuICAgICAgLnN1YnNjcmliZSgoY29uZmlnKSA9PiAodGhpcy50cmFuc2xhdGlvbkNvbmZpZyA9IGNvbmZpZykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xyXG4gICAgaWYgKG5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sRGF0ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGNvbnRyb2xEYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFZhbHVlcyhjb250cm9sRGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIFN0b3JlIG9yaWdpbmFsIHZhbHVlIG9uIGZpcnN0IHdyaXRlIHRvIHByZXNlcnZlIHN0cmluZyBmb3JtYXQgd2l0aCB0aW1lem9uZVxyXG4gICAgaWYgKHRoaXMucHJlc2VydmVPcmlnaW5hbFZhbHVlICYmICF0aGlzLl9vcmlnaW5hbFZhbHVlICYmIHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX29yaWdpbmFsVmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBvbkFwcGx5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2RhdGUgJiYgdGhpcy5fc2Vjb25kcyAmJiB0aGlzLl9taW51dGVzICYmIHRoaXMuX2hvdXJzKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBzZXRTZWNvbmRzKFxyXG4gICAgICAgIHNldE1pbnV0ZXMoXHJcbiAgICAgICAgICBzZXRIb3VycyhuZXcgRGF0ZSh0aGlzLl9kYXRlKSwgK3RoaXMuX2hvdXJzKSxcclxuICAgICAgICAgICt0aGlzLl9taW51dGVzLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgK3RoaXMuX3NlY29uZHMsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWZyZXNoUGlja2VyVmFsdWUoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnJ1blRpbWVvdXQpIHtcclxuICAgICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZVRpbWUoZGF0ZSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDMwMDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlVGltZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuXHJcbiAgICBpZiAoZGF0ZSAmJiBpc1ZhbGlkKG5ldyBEYXRlKGRhdGUpKSkge1xyXG4gICAgICByZXN1bHQgPSB0aGlzLmhpZGVTZWNvbmRzXHJcbiAgICAgICAgPyBmb3JtYXQobmV3IERhdGUoZGF0ZSksIGBkZC9NTS95eXl5LCBISDptbWApXHJcbiAgICAgICAgOiBmb3JtYXQobmV3IERhdGUoZGF0ZSksIGBkZC9NTS95eXl5LCBISDptbTpzc2ApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJvdW5kTnVtYmVyKG51bTogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0obnVtLCAnMi4wLTAnKSA/PyAnMDAnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZXMoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgLy8gUHJlc2VydmUgb3JpZ2luYWwgdmFsdWUgaWYgdGltZSB1bmNoYW5nZWRcclxuICAgIGNvbnN0IHNob3VsZFJldHVybk9yaWdpbmFsVmFsdWUgPVxyXG4gICAgICB0aGlzLl9vcmlnaW5hbFZhbHVlICYmIGlzU2FtZU1pbnV0ZShuZXcgRGF0ZSh0aGlzLl9vcmlnaW5hbFZhbHVlKSwgZGF0ZSk7XHJcblxyXG4gICAgY29uc3QgdmFsdWVUb0VtaXQgPSBzaG91bGRSZXR1cm5PcmlnaW5hbFZhbHVlID8gdGhpcy5fb3JpZ2luYWxWYWx1ZSA6IGRhdGU7XHJcblxyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZVRvRW1pdCk7XHJcbiAgICB0aGlzLm9uVG91Y2godmFsdWVUb0VtaXQpO1xyXG5cclxuICAgIGNvbnN0IGRhdGVUb1VzZSA9IHZhbHVlVG9FbWl0ID8gbmV3IERhdGUodmFsdWVUb0VtaXQpIDogZGF0ZTtcclxuICAgIHRoaXMuX2RhdGUgPSBkYXRlVG9Vc2U7XHJcblxyXG4gICAgaWYgKGRhdGVUb1VzZSAmJiBpc1ZhbGlkKGRhdGVUb1VzZSkpIHtcclxuICAgICAgdGhpcy5ob3VycyA9IGRhdGVUb1VzZS5nZXRIb3VycygpLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMubWludXRlcyA9IGRhdGVUb1VzZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5zZWNvbmRzID0gZGF0ZVRvVXNlLmdldFNlY29uZHMoKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0td3JhcHBlciB3LWZ1bGxcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZha2UtaW5wdXRcIlxyXG4gICAgICBbaWRdPVwiX2RhdGVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cIl9kYXRlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgICAgW21pbl09XCJtaW5EYXRlXCJcclxuICAgICAgW21heF09XCJtYXhEYXRlXCJcclxuICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlciBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiaGVhZGVyXCIgW3RvdWNoVWldPVwidG91Y2hVaVwiIGNsYXNzPVwiZGF0ZXBpY2tlci11aVwiPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtLWlucHV0c1wiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgIGVjYWJzRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgIGVjYWJzTnVtYmVyQm9yZGVyXHJcbiAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImhvdXJzXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiX2hvdXJzXCJcclxuICAgICAgICAgICAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVIb3Vyc1wiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJob3Vyc1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICBbaWRdPVwibWludXRlc1wiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtaW51dGVzXCJcclxuICAgICAgICAgICAgICBlY2Fic0RpZ2l0c09ubHlcclxuICAgICAgICAgICAgICBlY2Fic051bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzXCJcclxuICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZVNlY29uZHNcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPjo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cInNlY29uZHNcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWNvbmRzXCJcclxuICAgICAgICAgICAgICAgIGVjYWJzRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgZWNhYnNOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlTWludXRlc1NlY29uZHNcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGVjYWJzLWRhdGUtcGlja2VyLWFjdGlvbnMgW2FwcGx5TGFiZWxdPVwiYXBwbHlMYWJlbCA/PyB0cmFuc2xhdGlvbkNvbmZpZz8uYXBwbHlMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuY2VsTGFiZWxdPVwiY2FuY2VsTGFiZWwgPz8gdHJhbnNsYXRpb25Db25maWc/LmNhbmNlbExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSk9XCJvbkFwcGx5KClcIj5cclxuICAgICAgICAgIDwvZWNhYnMtZGF0ZS1waWNrZXItYWN0aW9ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxyXG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDxpbnB1dCAjbWF0Q3VzdG9tSW5wdXRcclxuICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbCBkYXRlLWlucHV0XCJcclxuICAgICAgICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwaWNrZXJWYWx1ZVwiXHJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgIGVjYWJzTWFza0RhdGVcclxuICAgICAgICAgICBbaXNEYXRlVGltZU1hc2tdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgW2NvbnNpZGVyU2Vjb25kc109XCIhaGlkZVNlY29uZHNcIlxyXG4gICAgICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAvPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBtYXREYXRlcGlja2VyVG9nZ2xlSWNvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwXCI+XHJcbiAgICAgICAgY2FsZW5kYXJfdG9kYXlcclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gIDwvZGl2PlxyXG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
|
|
@@ -29,7 +29,7 @@ import * as i3$1 from '@angular/material/checkbox';
|
|
|
29
29
|
import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
|
|
30
30
|
import * as i4$2 from '@angular/material/slide-toggle';
|
|
31
31
|
import { MatSlideToggle, MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
32
|
-
import { format, isValid, isEqual, parse, setSeconds, setMinutes, setHours } from 'date-fns';
|
|
32
|
+
import { format, isValid, isEqual, parse, setSeconds, setMinutes, setHours, isSameMinute } from 'date-fns';
|
|
33
33
|
import Holidays from 'date-holidays';
|
|
34
34
|
import enGbLocale from 'date-fns/locale/en-GB';
|
|
35
35
|
import * as i6$1 from '@angular/material/datepicker';
|
|
@@ -2560,10 +2560,14 @@ class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
2560
2560
|
cancelLabel;
|
|
2561
2561
|
applyLabel;
|
|
2562
2562
|
applyMinDateAuto = true;
|
|
2563
|
+
/** When true, preserves the original value (with timezone) if user hasn't changed the date/time */
|
|
2564
|
+
preserveOriginalValue = false;
|
|
2563
2565
|
_hours = '12';
|
|
2564
2566
|
_minutes = '00';
|
|
2565
2567
|
_seconds = '00';
|
|
2566
2568
|
_date;
|
|
2569
|
+
/** Stores the original input value to preserve string format with timezone */
|
|
2570
|
+
_originalValue;
|
|
2567
2571
|
_pickerValue;
|
|
2568
2572
|
val;
|
|
2569
2573
|
header = EcabsDateTimePickerHeaderComponent;
|
|
@@ -2673,6 +2677,10 @@ class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
2673
2677
|
onChange = () => { };
|
|
2674
2678
|
onTouch = () => { };
|
|
2675
2679
|
writeValue(value) {
|
|
2680
|
+
// Store original value on first write to preserve string format with timezone
|
|
2681
|
+
if (this.preserveOriginalValue && !this._originalValue && value) {
|
|
2682
|
+
this._originalValue = value;
|
|
2683
|
+
}
|
|
2676
2684
|
this.value = value;
|
|
2677
2685
|
}
|
|
2678
2686
|
registerOnChange(fn) {
|
|
@@ -2707,17 +2715,21 @@ class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
2707
2715
|
return this.decimalPipe.transform(num, '2.0-0') ?? '00';
|
|
2708
2716
|
}
|
|
2709
2717
|
setValues(date) {
|
|
2710
|
-
|
|
2711
|
-
this.
|
|
2712
|
-
this.
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2718
|
+
// Preserve original value if time unchanged
|
|
2719
|
+
const shouldReturnOriginalValue = this._originalValue && isSameMinute(new Date(this._originalValue), date);
|
|
2720
|
+
const valueToEmit = shouldReturnOriginalValue ? this._originalValue : date;
|
|
2721
|
+
this.onChange(valueToEmit);
|
|
2722
|
+
this.onTouch(valueToEmit);
|
|
2723
|
+
const dateToUse = valueToEmit ? new Date(valueToEmit) : date;
|
|
2724
|
+
this._date = dateToUse;
|
|
2725
|
+
if (dateToUse && isValid(dateToUse)) {
|
|
2726
|
+
this.hours = dateToUse.getHours().toString();
|
|
2727
|
+
this.minutes = dateToUse.getMinutes().toString();
|
|
2728
|
+
this.seconds = dateToUse.getSeconds().toString();
|
|
2717
2729
|
}
|
|
2718
2730
|
}
|
|
2719
2731
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimePickerComponent, deps: [{ token: i0.Injector }, { token: i1.DecimalPipe }, { token: i0.ChangeDetectorRef }, { token: EcabsDatePickerHeaderService }, { token: UnsubscribeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2720
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimePickerComponent, selector: "ecabs-date-time-picker", inputs: { minDate: "minDate", maxDate: "maxDate", touchUi: "touchUi", hideSeconds: "hideSeconds", cancelLabel: "cancelLabel", applyLabel: "applyLabel", applyMinDateAuto: "applyMinDateAuto" }, providers: [
|
|
2732
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimePickerComponent, selector: "ecabs-date-time-picker", inputs: { minDate: "minDate", maxDate: "maxDate", touchUi: "touchUi", hideSeconds: "hideSeconds", cancelLabel: "cancelLabel", applyLabel: "applyLabel", applyMinDateAuto: "applyMinDateAuto", preserveOriginalValue: "preserveOriginalValue" }, providers: [
|
|
2721
2733
|
{
|
|
2722
2734
|
provide: NG_VALUE_ACCESSOR,
|
|
2723
2735
|
useExisting: forwardRef(() => EcabsDateTimePickerComponent),
|
|
@@ -2758,6 +2770,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2758
2770
|
type: Input
|
|
2759
2771
|
}], applyMinDateAuto: [{
|
|
2760
2772
|
type: Input
|
|
2773
|
+
}], preserveOriginalValue: [{
|
|
2774
|
+
type: Input
|
|
2761
2775
|
}] } });
|
|
2762
2776
|
|
|
2763
2777
|
class EcabsMaskDateDirectiveModule {
|