@skyux/datetime 11.39.0 → 12.0.0-alpha.1
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/documentation.json +1004 -2555
- package/fesm2022/skyux-datetime-testing.mjs +4 -3
- package/fesm2022/skyux-datetime-testing.mjs.map +1 -1
- package/fesm2022/skyux-datetime.mjs +105 -102
- package/fesm2022/skyux-datetime.mjs.map +1 -1
- package/package.json +15 -19
- package/testing/modules/datepicker/datepicker-calendar-harness.d.ts +3 -2
- package/testing/public-api.d.ts +0 -2
- package/esm2022/index.mjs +0 -23
- package/esm2022/lib/modules/date-pipe/date-pipe.module.mjs +0 -20
- package/esm2022/lib/modules/date-pipe/date.pipe.mjs +0 -68
- package/esm2022/lib/modules/date-pipe/date.service.mjs +0 -94
- package/esm2022/lib/modules/date-pipe/fuzzy-date.pipe.mjs +0 -47
- package/esm2022/lib/modules/date-range-picker/date-range-picker-end-date-resource-key.pipe.mjs +0 -21
- package/esm2022/lib/modules/date-range-picker/date-range-picker-start-date-resource-key.pipe.mjs +0 -21
- package/esm2022/lib/modules/date-range-picker/date-range-picker.component.mjs +0 -445
- package/esm2022/lib/modules/date-range-picker/date-range-picker.module.mjs +0 -17
- package/esm2022/lib/modules/date-range-picker/date-range.service.mjs +0 -95
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculation.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-config.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-id.mjs +0 -118
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-type.mjs +0 -23
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator-validate-function.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-calculator.mjs +0 -71
- package/esm2022/lib/modules/date-range-picker/types/date-range-default-calculator-config.mjs +0 -2
- package/esm2022/lib/modules/date-range-picker/types/date-range-default-calculator-configs.mjs +0 -173
- package/esm2022/lib/modules/date-range-picker/types/date-range-relative-value.mjs +0 -249
- package/esm2022/lib/modules/date-range-picker/types/date-range.mjs +0 -2
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar-change.mjs +0 -2
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar-inner.component.mjs +0 -383
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar-label.pipe.mjs +0 -39
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar.component.mjs +0 -100
- package/esm2022/lib/modules/datepicker/calendar/datepicker-calendar.service.mjs +0 -22
- package/esm2022/lib/modules/datepicker/calendar/daypicker-button.component.mjs +0 -23
- package/esm2022/lib/modules/datepicker/calendar/daypicker-cell.component.mjs +0 -129
- package/esm2022/lib/modules/datepicker/calendar/daypicker-context.mjs +0 -2
- package/esm2022/lib/modules/datepicker/calendar/daypicker.component.mjs +0 -221
- package/esm2022/lib/modules/datepicker/calendar/monthpicker.component.mjs +0 -80
- package/esm2022/lib/modules/datepicker/calendar/yearpicker.component.mjs +0 -87
- package/esm2022/lib/modules/datepicker/date-formatter.mjs +0 -38
- package/esm2022/lib/modules/datepicker/datepicker-config.service.mjs +0 -21
- package/esm2022/lib/modules/datepicker/datepicker-custom-date.mjs +0 -2
- package/esm2022/lib/modules/datepicker/datepicker-host.service.mjs +0 -61
- package/esm2022/lib/modules/datepicker/datepicker-input.directive.mjs +0 -526
- package/esm2022/lib/modules/datepicker/datepicker.component.mjs +0 -419
- package/esm2022/lib/modules/datepicker/datepicker.module.mjs +0 -62
- package/esm2022/lib/modules/datepicker/fuzzy/datepicker-input-fuzzy.directive.mjs +0 -516
- package/esm2022/lib/modules/datepicker/fuzzy/fuzzy-date.mjs +0 -2
- package/esm2022/lib/modules/datepicker/fuzzy/fuzzy-date.service.mjs +0 -411
- package/esm2022/lib/modules/shared/sky-datetime-resources.module.mjs +0 -130
- package/esm2022/lib/modules/timepicker/timepicker-time-format-type.mjs +0 -2
- package/esm2022/lib/modules/timepicker/timepicker-time-output.mjs +0 -2
- package/esm2022/lib/modules/timepicker/timepicker.component.mjs +0 -415
- package/esm2022/lib/modules/timepicker/timepicker.directive.mjs +0 -226
- package/esm2022/lib/modules/timepicker/timepicker.module.mjs +0 -37
- package/esm2022/skyux-datetime.mjs +0 -5
- package/esm2022/testing/legacy/datepicker-fixture.mjs +0 -56
- package/esm2022/testing/legacy/timepicker-fixture.mjs +0 -52
- package/esm2022/testing/modules/date-range-picker/date-range-picker-harness.filters.mjs +0 -2
- package/esm2022/testing/modules/date-range-picker/date-range-picker-harness.mjs +0 -193
- package/esm2022/testing/modules/datepicker/datepicker-calendar-harness.filters.mjs +0 -2
- package/esm2022/testing/modules/datepicker/datepicker-calendar-harness.mjs +0 -87
- package/esm2022/testing/modules/datepicker/datepicker-harness.filters.mjs +0 -2
- package/esm2022/testing/modules/datepicker/datepicker-harness.mjs +0 -60
- package/esm2022/testing/modules/datepicker/datepicker-input-harness.mjs +0 -29
- package/esm2022/testing/modules/datepicker/fuzzy-datepicker-input-harness.mjs +0 -29
- package/esm2022/testing/public-api.mjs +0 -8
- package/esm2022/testing/skyux-datetime-testing.mjs +0 -5
@@ -1,445 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, HostBinding, Injector, Input, booleanAttribute, computed, inject, runInInjectionContext, signal, viewChildren, } from '@angular/core';
|
3
|
-
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
4
|
-
import { FormBuilder, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule, StatusChangeEvent, TouchedChangeEvent, } from '@angular/forms';
|
5
|
-
import { SkyLogService } from '@skyux/core';
|
6
|
-
import { SKY_FORM_ERRORS_ENABLED, SkyFormErrorsModule, SkyInputBoxModule, } from '@skyux/forms';
|
7
|
-
import { distinctUntilChanged, filter, map } from 'rxjs';
|
8
|
-
import { SkyDatepickerComponent } from '../datepicker/datepicker.component';
|
9
|
-
import { SkyDatepickerModule } from '../datepicker/datepicker.module';
|
10
|
-
import { SkyDatetimeResourcesModule } from '../shared/sky-datetime-resources.module';
|
11
|
-
import { SkyDateRangePickerEndDateResourceKeyPipe } from './date-range-picker-end-date-resource-key.pipe';
|
12
|
-
import { SkyDateRangePickerStartDateResourceKeyPipe } from './date-range-picker-start-date-resource-key.pipe';
|
13
|
-
import { SkyDateRangeService } from './date-range.service';
|
14
|
-
import { SkyDateRangeCalculatorType } from './types/date-range-calculator-type';
|
15
|
-
import { SKY_DEFAULT_CALCULATOR_IDS } from './types/date-range-default-calculator-configs';
|
16
|
-
import * as i0 from "@angular/core";
|
17
|
-
import * as i1 from "@angular/common";
|
18
|
-
import * as i2 from "@angular/forms";
|
19
|
-
import * as i3 from "../datepicker/datepicker.component";
|
20
|
-
import * as i4 from "../datepicker/datepicker-input.directive";
|
21
|
-
import * as i5 from "@skyux/i18n";
|
22
|
-
import * as i6 from "@skyux/forms";
|
23
|
-
function areDateRangesEqual(rangeA, rangeB) {
|
24
|
-
return (!!rangeA &&
|
25
|
-
!!rangeB &&
|
26
|
-
rangeA.calculatorId === rangeB.calculatorId &&
|
27
|
-
areDatesEqual(rangeA.startDate, rangeB.startDate) &&
|
28
|
-
areDatesEqual(rangeA.endDate, rangeB.endDate));
|
29
|
-
}
|
30
|
-
function areDatesEqual(a, b) {
|
31
|
-
if (typeof a !== typeof b) {
|
32
|
-
return false;
|
33
|
-
}
|
34
|
-
if (!a && !b) {
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
if (typeof a === 'string' && a === b) {
|
38
|
-
return true;
|
39
|
-
}
|
40
|
-
return a instanceof Date && b instanceof Date && a.getTime() === b.getTime();
|
41
|
-
}
|
42
|
-
function isNullOrUndefined(value) {
|
43
|
-
return value === undefined || value === null;
|
44
|
-
}
|
45
|
-
function isPartialValue(value) {
|
46
|
-
return (isNullOrUndefined(value) ||
|
47
|
-
isNullOrUndefined(value.calculatorId) ||
|
48
|
-
!('endDate' in value) ||
|
49
|
-
!('startDate' in value));
|
50
|
-
}
|
51
|
-
export class SkyDateRangePickerComponent {
|
52
|
-
constructor() {
|
53
|
-
this.#dateRangeSvc = inject(SkyDateRangeService);
|
54
|
-
this.#destroyRef = inject(DestroyRef);
|
55
|
-
this.#elementRef = inject(ElementRef);
|
56
|
-
this.#injector = inject(Injector);
|
57
|
-
this.#logger = inject(SkyLogService);
|
58
|
-
/**
|
59
|
-
* Whether the date range picker is stacked on another form component. When specified, the appropriate
|
60
|
-
* vertical spacing is automatically added to the date range picker.
|
61
|
-
*/
|
62
|
-
this.stacked = false;
|
63
|
-
this.calculators = this.#dateRangeSvc.calculators;
|
64
|
-
this.datepickers = viewChildren(SkyDatepickerComponent);
|
65
|
-
this.selectedCalculator = this.calculators[0];
|
66
|
-
this.showEndDatePicker = signal(false);
|
67
|
-
this.showStartDatePicker = signal(false);
|
68
|
-
this.#_calculatorIds = SKY_DEFAULT_CALCULATOR_IDS;
|
69
|
-
this.#_value = this.selectedCalculator.getValue();
|
70
|
-
this.#calculatorIdControl = new FormControl(this.#getValue().calculatorId, { nonNullable: true });
|
71
|
-
this.#calculatorIdInvalid = this.#createStatusChangeSignal(this.#calculatorIdControl);
|
72
|
-
this.#calculatorIdTouched = this.#createTouchedChangeSignal(this.#calculatorIdControl);
|
73
|
-
this.#endDateControl = new FormControl(this.#getValue().endDate);
|
74
|
-
this.#endDateInvalid = this.#createStatusChangeSignal(this.#endDateControl);
|
75
|
-
this.#endDateTouched = this.#createTouchedChangeSignal(this.#endDateControl);
|
76
|
-
this.#startDateControl = new FormControl(this.#getValue().startDate);
|
77
|
-
this.#startDateInvalid = this.#createStatusChangeSignal(this.#startDateControl);
|
78
|
-
this.#startDateTouched = this.#createTouchedChangeSignal(this.#startDateControl);
|
79
|
-
this.formGroup = inject(FormBuilder).group({
|
80
|
-
calculatorId: this.#calculatorIdControl,
|
81
|
-
startDate: this.#startDateControl,
|
82
|
-
endDate: this.#endDateControl,
|
83
|
-
});
|
84
|
-
this.calculatorIdHasErrors = computed(() => {
|
85
|
-
const touched = this.#calculatorIdTouched();
|
86
|
-
const invalid = this.#calculatorIdInvalid() || this.#hostHasCustomError?.();
|
87
|
-
return touched && invalid;
|
88
|
-
});
|
89
|
-
this.endDateHasErrors = computed(() => {
|
90
|
-
const calculatorIdHasErrors = this.calculatorIdHasErrors();
|
91
|
-
const touched = this.#endDateTouched();
|
92
|
-
const invalid = this.#endDateInvalid();
|
93
|
-
return calculatorIdHasErrors || (touched && invalid);
|
94
|
-
});
|
95
|
-
this.startDateHasErrors = computed(() => {
|
96
|
-
const calculatorIdHasErrors = this.calculatorIdHasErrors();
|
97
|
-
const touched = this.#startDateTouched();
|
98
|
-
const invalid = this.#startDateInvalid();
|
99
|
-
return calculatorIdHasErrors || (touched && invalid);
|
100
|
-
});
|
101
|
-
}
|
102
|
-
#dateRangeSvc;
|
103
|
-
#destroyRef;
|
104
|
-
#elementRef;
|
105
|
-
#injector;
|
106
|
-
#logger;
|
107
|
-
/**
|
108
|
-
* IDs for the date range options to include in the picker's dropdown.
|
109
|
-
* The options specify calculator objects that return two `Date` objects to represent date ranges.
|
110
|
-
* By default, this property includes all `SkyDateRangeCalculatorId` values.
|
111
|
-
*/
|
112
|
-
set calculatorIds(calculatorIds) {
|
113
|
-
const currentCalculatorId = this.#getValue().calculatorId;
|
114
|
-
this.#_calculatorIds = calculatorIds ?? SKY_DEFAULT_CALCULATOR_IDS;
|
115
|
-
this.calculators = this.#dateRangeSvc.filterCalculators(this.#_calculatorIds);
|
116
|
-
// If the currently selected calculator isn't available anymore,
|
117
|
-
// select the first calculator in the new array.
|
118
|
-
if (!this.#_calculatorIds.includes(currentCalculatorId)) {
|
119
|
-
this.#setValue({ calculatorId: this.calculatorIds[0] });
|
120
|
-
}
|
121
|
-
}
|
122
|
-
get calculatorIds() {
|
123
|
-
return this.#_calculatorIds;
|
124
|
-
}
|
125
|
-
/**
|
126
|
-
* Whether to disable the date range picker on template-driven forms. Don't use
|
127
|
-
* this input on reactive forms because they may overwrite the input or leave
|
128
|
-
* the control out of sync. To set the disabled state on reactive forms,
|
129
|
-
* use the `FormControl` instead.
|
130
|
-
* @default false
|
131
|
-
*/
|
132
|
-
set disabled(value) {
|
133
|
-
if (value) {
|
134
|
-
this.formGroup.disable();
|
135
|
-
}
|
136
|
-
else {
|
137
|
-
this.formGroup.enable();
|
138
|
-
}
|
139
|
-
}
|
140
|
-
/**
|
141
|
-
* The label for the date range picker.
|
142
|
-
* @deprecated Use the `labelText` input instead.
|
143
|
-
*/
|
144
|
-
set label(value) {
|
145
|
-
this.#_label = value;
|
146
|
-
if (value) {
|
147
|
-
this.#logger.deprecated('SkyDateRangePickerComponent.label', {
|
148
|
-
deprecationMajorVersion: 10,
|
149
|
-
replacementRecommendation: 'Use the `labelText` input instead.',
|
150
|
-
});
|
151
|
-
}
|
152
|
-
}
|
153
|
-
get label() {
|
154
|
-
return this.#_label;
|
155
|
-
}
|
156
|
-
#_calculatorIds;
|
157
|
-
#_label;
|
158
|
-
#_value;
|
159
|
-
#hostHasCustomError;
|
160
|
-
#notifyChange;
|
161
|
-
#notifyTouched;
|
162
|
-
#calculatorIdControl;
|
163
|
-
#calculatorIdInvalid;
|
164
|
-
#calculatorIdTouched;
|
165
|
-
#endDateControl;
|
166
|
-
#endDateInvalid;
|
167
|
-
#endDateTouched;
|
168
|
-
#startDateControl;
|
169
|
-
#startDateInvalid;
|
170
|
-
#startDateTouched;
|
171
|
-
ngAfterViewInit() {
|
172
|
-
this.hostControl = this.#injector.get(NgControl, null, {
|
173
|
-
optional: true,
|
174
|
-
self: true,
|
175
|
-
})?.control;
|
176
|
-
runInInjectionContext(this.#injector, () => {
|
177
|
-
if (this.hostControl) {
|
178
|
-
this.#hostHasCustomError = this.#createHostCustomErrorChangeSignal(this.hostControl);
|
179
|
-
}
|
180
|
-
});
|
181
|
-
// Set a default value on the control if it's undefined on init.
|
182
|
-
// We need to use setTimeout to avoid interfering with the first
|
183
|
-
// validation cycle.
|
184
|
-
if (isPartialValue(this.hostControl?.value)) {
|
185
|
-
setTimeout(() => {
|
186
|
-
this.hostControl?.setValue(this.#getValue(), {
|
187
|
-
emitEvent: false,
|
188
|
-
});
|
189
|
-
});
|
190
|
-
}
|
191
|
-
// If the datepickers' statuses change, we want to retrigger the host
|
192
|
-
// control's validation so that their errors are reflected back to the host.
|
193
|
-
this.formGroup.events
|
194
|
-
.pipe(filter((evt) => evt instanceof StatusChangeEvent), map((evt) => evt.status), distinctUntilChanged(), takeUntilDestroyed(this.#destroyRef))
|
195
|
-
.subscribe(() => {
|
196
|
-
this.hostControl?.updateValueAndValidity({
|
197
|
-
emitEvent: false,
|
198
|
-
onlySelf: true,
|
199
|
-
});
|
200
|
-
});
|
201
|
-
// Mark all fields as touched if the host control is touched.
|
202
|
-
this.hostControl?.events
|
203
|
-
.pipe(filter((evt) => evt instanceof TouchedChangeEvent), map((evt) => evt.touched), distinctUntilChanged(), takeUntilDestroyed(this.#destroyRef))
|
204
|
-
.subscribe(() => {
|
205
|
-
this.formGroup.markAllAsTouched();
|
206
|
-
});
|
207
|
-
}
|
208
|
-
// Implemented as part of ControlValueAccessor.
|
209
|
-
registerOnChange(fn) {
|
210
|
-
this.#notifyChange = fn;
|
211
|
-
}
|
212
|
-
// Implemented as part of ControlValueAccessor.
|
213
|
-
registerOnTouched(fn) {
|
214
|
-
this.#notifyTouched = fn;
|
215
|
-
}
|
216
|
-
// Implemented as part of ControlValueAccessor.
|
217
|
-
setDisabledState(isDisabled) {
|
218
|
-
this.disabled = isDisabled;
|
219
|
-
}
|
220
|
-
// Implemented as part of Validator.
|
221
|
-
validate(control) {
|
222
|
-
let errors = null;
|
223
|
-
const calculatorErrors = this.selectedCalculator.validate(control.value);
|
224
|
-
const startDateErrors = this.#startDateControl.errors;
|
225
|
-
const endDateErrors = this.#endDateControl.errors;
|
226
|
-
if (calculatorErrors) {
|
227
|
-
errors = {
|
228
|
-
skyDateRange: {
|
229
|
-
calculatorId: this.#getValue().calculatorId,
|
230
|
-
errors: calculatorErrors,
|
231
|
-
},
|
232
|
-
};
|
233
|
-
}
|
234
|
-
// Set calculator errors on the select so that they appear beneath it.
|
235
|
-
this.#calculatorIdControl.setErrors(errors);
|
236
|
-
if (this.showStartDatePicker() && startDateErrors) {
|
237
|
-
errors ||= {};
|
238
|
-
errors = { ...errors, ...startDateErrors };
|
239
|
-
}
|
240
|
-
if (this.showEndDatePicker() && endDateErrors) {
|
241
|
-
errors ||= {};
|
242
|
-
errors = { ...errors, ...endDateErrors };
|
243
|
-
}
|
244
|
-
return errors;
|
245
|
-
}
|
246
|
-
// Implemented as part of ControlValueAccessor.
|
247
|
-
// The date range picker always has a value, so if the consumer passes in a
|
248
|
-
// partial value (via `patchValue`) or null, we need to update the host control's
|
249
|
-
// value with the complete value after it's been modified.
|
250
|
-
writeValue(value) {
|
251
|
-
this.#patchValue(value);
|
252
|
-
// Update the host control if it is set to a partial or null value.
|
253
|
-
if (isPartialValue(value)) {
|
254
|
-
this.hostControl?.setValue(this.#getValue(), {
|
255
|
-
emitEvent: false,
|
256
|
-
onlySelf: true,
|
257
|
-
});
|
258
|
-
}
|
259
|
-
}
|
260
|
-
/**
|
261
|
-
* Fires when a user changes the selected calculator ID.
|
262
|
-
*/
|
263
|
-
onCalculatorIdChange() {
|
264
|
-
// Reset the value when the calculator ID changes.
|
265
|
-
this.#setValue({ calculatorId: +this.#calculatorIdControl.value });
|
266
|
-
this.onDateChange();
|
267
|
-
}
|
268
|
-
/**
|
269
|
-
* Fires when a user interacts with a date range picker.
|
270
|
-
*/
|
271
|
-
onDateChange() {
|
272
|
-
// Wait until the form control is updated before retrieving its value.
|
273
|
-
setTimeout(() => {
|
274
|
-
this.#notifyChange?.(this.formGroup.getRawValue());
|
275
|
-
});
|
276
|
-
}
|
277
|
-
/**
|
278
|
-
* Fires when the date range picker loses focus.
|
279
|
-
*/
|
280
|
-
onFocusout({ relatedTarget }) {
|
281
|
-
if (relatedTarget &&
|
282
|
-
!this.#elementRef.nativeElement.contains(relatedTarget) &&
|
283
|
-
!this.datepickers().some((picker) => picker.containsTarget(relatedTarget))) {
|
284
|
-
this.#notifyTouched?.();
|
285
|
-
}
|
286
|
-
}
|
287
|
-
#getCalculator(calculatorId) {
|
288
|
-
const found = this.calculators.find((c) => c.calculatorId === calculatorId);
|
289
|
-
/*istanbul ignore if: safety check*/
|
290
|
-
if (!found) {
|
291
|
-
throw new Error(`A date range calculator with ID (${calculatorId}) could not be found.`);
|
292
|
-
}
|
293
|
-
return found;
|
294
|
-
}
|
295
|
-
#getValue() {
|
296
|
-
// Important! Return a clone to avoid changing the properties by reference.
|
297
|
-
return { ...this.#_value };
|
298
|
-
}
|
299
|
-
#patchValue(partialValue) {
|
300
|
-
if (isNullOrUndefined(partialValue)) {
|
301
|
-
this.#setValue(null);
|
302
|
-
return;
|
303
|
-
}
|
304
|
-
const oldValue = this.#getValue();
|
305
|
-
// If the new ID is distinct, erase the old start and end dates because
|
306
|
-
// they're no longer applicable.
|
307
|
-
if (!isNullOrUndefined(partialValue.calculatorId) &&
|
308
|
-
oldValue.calculatorId !== partialValue.calculatorId) {
|
309
|
-
delete oldValue.endDate;
|
310
|
-
delete oldValue.startDate;
|
311
|
-
}
|
312
|
-
const value = {
|
313
|
-
...oldValue,
|
314
|
-
...partialValue,
|
315
|
-
};
|
316
|
-
this.#setValue(value);
|
317
|
-
}
|
318
|
-
/**
|
319
|
-
* Sets the value to be used by the date range picker form control.
|
320
|
-
*/
|
321
|
-
#setValue(value) {
|
322
|
-
const oldValue = this.#getValue();
|
323
|
-
const isValueEmpty = !value || isNullOrUndefined(value.calculatorId);
|
324
|
-
const valueOrDefault = isValueEmpty
|
325
|
-
? this.calculators[0].getValue()
|
326
|
-
: {
|
327
|
-
...this.#getCalculator(value.calculatorId).getValue(),
|
328
|
-
...value,
|
329
|
-
};
|
330
|
-
// Ensure falsy values are set to null.
|
331
|
-
valueOrDefault.endDate = valueOrDefault.endDate || null;
|
332
|
-
valueOrDefault.startDate = valueOrDefault.startDate || null;
|
333
|
-
if (!areDateRangesEqual(oldValue, valueOrDefault)) {
|
334
|
-
this.#_value = valueOrDefault;
|
335
|
-
if (oldValue.calculatorId !== valueOrDefault.calculatorId) {
|
336
|
-
this.selectedCalculator = this.#getCalculator(valueOrDefault.calculatorId);
|
337
|
-
this.#updatePickerVisibility(this.selectedCalculator);
|
338
|
-
}
|
339
|
-
this.formGroup.patchValue(valueOrDefault);
|
340
|
-
}
|
341
|
-
}
|
342
|
-
#updatePickerVisibility(calculator) {
|
343
|
-
let showEndDatePicker = false;
|
344
|
-
let showStartDatePicker = false;
|
345
|
-
switch (calculator.type) {
|
346
|
-
case SkyDateRangeCalculatorType.Before:
|
347
|
-
showEndDatePicker = true;
|
348
|
-
break;
|
349
|
-
case SkyDateRangeCalculatorType.After:
|
350
|
-
showStartDatePicker = true;
|
351
|
-
break;
|
352
|
-
case SkyDateRangeCalculatorType.Range:
|
353
|
-
showEndDatePicker = true;
|
354
|
-
showStartDatePicker = true;
|
355
|
-
break;
|
356
|
-
default:
|
357
|
-
break;
|
358
|
-
}
|
359
|
-
this.showEndDatePicker.set(showEndDatePicker);
|
360
|
-
this.showStartDatePicker.set(showStartDatePicker);
|
361
|
-
}
|
362
|
-
#createHostCustomErrorChangeSignal(control) {
|
363
|
-
return toSignal(control.events.pipe(filter((evt) => evt instanceof StatusChangeEvent), map((evt) => {
|
364
|
-
const errors = evt.source.errors ?? [];
|
365
|
-
const knownErrors = ['required', 'skyDate'];
|
366
|
-
return Object.keys(errors).some((error) => {
|
367
|
-
return !knownErrors.includes(error);
|
368
|
-
});
|
369
|
-
})));
|
370
|
-
}
|
371
|
-
#createStatusChangeSignal(control) {
|
372
|
-
return toSignal(control.events.pipe(filter((evt) => evt instanceof StatusChangeEvent), map((evt) => evt.status === 'INVALID'), takeUntilDestroyed(this.#destroyRef)));
|
373
|
-
}
|
374
|
-
#createTouchedChangeSignal(control) {
|
375
|
-
return toSignal(control.events.pipe(filter((evt) => evt instanceof TouchedChangeEvent), map((evt) => evt.touched), takeUntilDestroyed(this.#destroyRef)));
|
376
|
-
}
|
377
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
378
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyDateRangePickerComponent, isStandalone: true, selector: "sky-date-range-picker", inputs: { calculatorIds: "calculatorIds", dateFormat: "dateFormat", disabled: ["disabled", "disabled", booleanAttribute], helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", hintText: "hintText", label: "label", labelText: "labelText", stacked: ["stacked", "stacked", booleanAttribute], helpKey: "helpKey" }, host: { listeners: { "focusout": "onFocusout($event)" }, properties: { "class.sky-form-field-stacked": "this.stacked" } }, providers: [
|
379
|
-
{
|
380
|
-
provide: NG_VALIDATORS,
|
381
|
-
useExisting: SkyDateRangePickerComponent,
|
382
|
-
multi: true,
|
383
|
-
},
|
384
|
-
{
|
385
|
-
provide: NG_VALUE_ACCESSOR,
|
386
|
-
useExisting: SkyDateRangePickerComponent,
|
387
|
-
multi: true,
|
388
|
-
},
|
389
|
-
{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
|
390
|
-
], viewQueries: [{ propertyName: "datepickers", predicate: SkyDatepickerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"sky-date-range-picker\" [formGroup]=\"formGroup\">\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-picker-select-calculator\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n !showStartDatePicker() && !showEndDatePicker()\n }\"\n >\n <sky-input-box\n [hasErrors]=\"calculatorIdHasErrors()\"\n [helpKey]=\"helpKey\"\n [helpPopoverContent]=\"helpPopoverContent\"\n [helpPopoverTitle]=\"helpPopoverTitle\"\n [hintText]=\"hintText\"\n [labelText]=\"\n labelText ||\n label ||\n ('skyux_date_range_picker_default_label' | skyLibResources)\n \"\n >\n <select formControlName=\"calculatorId\" (change)=\"onCalculatorIdChange()\">\n @for (calculator of calculators; track calculator.calculatorId) {\n <option [value]=\"calculator.calculatorId\">\n {{ calculator.shortDescription$ | async }}\n </option>\n }\n </select>\n @if (\n hostControl?.errors?.['skyDateRange']?.errors?.[\n 'endDateBeforeStartDate'\n ] && labelText\n ) {\n <sky-form-error\n errorName=\"endDateBeforeStartDate\"\n [errorText]=\"\n 'skyux_date_range_picker_end_date_before_start_date_error_label_text'\n | skyLibResources\n \"\n />\n }\n <span class=\"sky-input-box-descendent-form-error\">\n <ng-content select=\"sky-form-error\" />\n </span>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper sky-date-range-picker-start-date\"\n [hidden]=\"!showStartDatePicker()\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n showStartDatePicker() && !showEndDatePicker()\n }\"\n >\n <sky-input-box\n [hasErrors]=\"startDateHasErrors()\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker (calendarDateChange)=\"onDateChange()\">\n <input\n formControlName=\"startDate\"\n name=\"startDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showStartDatePicker()\"\n (change)=\"onDateChange()\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper sky-date-range-picker-end-date\"\n [hidden]=\"!showEndDatePicker()\"\n [ngClass]=\"{ 'sky-date-range-picker-last-input': showEndDatePicker() }\"\n >\n <sky-input-box\n [hasErrors]=\"endDateHasErrors()\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker (calendarDateChange)=\"onDateChange()\">\n <input\n formControlName=\"endDate\"\n name=\"endDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showEndDatePicker()\"\n (change)=\"onDateChange()\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [".sky-date-range-picker:not(.sky-theme-modern *){--sky-override-date-range-picker-margin-right: 0;--sky-override-date-range-picker-padding-left: 5px;--sky-override-date-range-picker-padding-right: 5px;--sky-override-date-range-picker-responsive-bottom-margin: var( --sky-margin-stacked-lg )}:host{display:block}.sky-date-range-picker{display:flex}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-override-date-range-picker-responsive-bottom-margin, var(--sky-space-gap-form-l));margin-right:0}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-override-date-range-picker-responsive-bottom-margin, var(--sky-space-gap-form-l));margin-right:0}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:33.3333333333%;padding:0}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:var(--sky-override-date-range-picker-padding-left, 0)}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:var(--sky-override-date-range-picker-padding-right, 0)}:host .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:0;margin-right:var(--sky-override-date-range-picker-margin-right, var(--sky-space-gap-form-l))}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:33.3333333333%;padding:0}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:var(--sky-override-date-range-picker-padding-left, 0)}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:var(--sky-override-date-range-picker-padding-right, 0)}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:0;margin-right:var(--sky-override-date-range-picker-margin-right, var(--sky-space-gap-form-l))}@media (min-width: 768px){:host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}}.sky-responsive-container-sm :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-md :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-lg :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SkyDatepickerModule }, { kind: "component", type: i3.SkyDatepickerComponent, selector: "sky-datepicker", inputs: ["pickerClass"], outputs: ["calendarDateRangeChange", "dateFormatChange", "openChange", "calendarDateChange"] }, { kind: "directive", type: i4.SkyDatepickerInputDirective, selector: "[skyDatepickerInput]", inputs: ["dateFormat", "disabled", "maxDate", "minDate", "startAtDate", "skyDatepickerInput", "skyDatepickerNoValidate", "startingDay", "strict"] }, { kind: "pipe", type: SkyDateRangePickerEndDateResourceKeyPipe, name: "skyDateRangePickerEndDateResourceKey" }, { kind: "pipe", type: SkyDateRangePickerStartDateResourceKeyPipe, name: "skyDateRangePickerStartDateResourceKey" }, { kind: "ngmodule", type: SkyDatetimeResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyInputBoxModule }, { kind: "component", type: i6.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled", "labelText", "characterLimit", "stacked", "helpPopoverTitle", "helpPopoverContent", "helpKey", "hintText"] }, { kind: "directive", type: i6.λ20, selector: "input:not([skyId]):not(.sky-form-control),select:not([skyId]):not(.sky-form-control),textarea:not([skyId]):not(.sky-form-control)", inputs: ["autocomplete"] }, { kind: "component", type: i6.λ22, selector: "sky-form-error", inputs: ["errorName", "errorText"] }, { kind: "ngmodule", type: SkyFormErrorsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
391
|
-
}
|
392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDateRangePickerComponent, decorators: [{
|
393
|
-
type: Component,
|
394
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
395
|
-
'(focusout)': 'onFocusout($event)',
|
396
|
-
}, imports: [
|
397
|
-
CommonModule,
|
398
|
-
FormsModule,
|
399
|
-
ReactiveFormsModule,
|
400
|
-
SkyDatepickerModule,
|
401
|
-
SkyDateRangePickerEndDateResourceKeyPipe,
|
402
|
-
SkyDateRangePickerStartDateResourceKeyPipe,
|
403
|
-
SkyDatetimeResourcesModule,
|
404
|
-
SkyInputBoxModule,
|
405
|
-
SkyFormErrorsModule,
|
406
|
-
], providers: [
|
407
|
-
{
|
408
|
-
provide: NG_VALIDATORS,
|
409
|
-
useExisting: SkyDateRangePickerComponent,
|
410
|
-
multi: true,
|
411
|
-
},
|
412
|
-
{
|
413
|
-
provide: NG_VALUE_ACCESSOR,
|
414
|
-
useExisting: SkyDateRangePickerComponent,
|
415
|
-
multi: true,
|
416
|
-
},
|
417
|
-
{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
|
418
|
-
], selector: 'sky-date-range-picker', standalone: true, template: "<div class=\"sky-date-range-picker\" [formGroup]=\"formGroup\">\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-picker-select-calculator\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n !showStartDatePicker() && !showEndDatePicker()\n }\"\n >\n <sky-input-box\n [hasErrors]=\"calculatorIdHasErrors()\"\n [helpKey]=\"helpKey\"\n [helpPopoverContent]=\"helpPopoverContent\"\n [helpPopoverTitle]=\"helpPopoverTitle\"\n [hintText]=\"hintText\"\n [labelText]=\"\n labelText ||\n label ||\n ('skyux_date_range_picker_default_label' | skyLibResources)\n \"\n >\n <select formControlName=\"calculatorId\" (change)=\"onCalculatorIdChange()\">\n @for (calculator of calculators; track calculator.calculatorId) {\n <option [value]=\"calculator.calculatorId\">\n {{ calculator.shortDescription$ | async }}\n </option>\n }\n </select>\n @if (\n hostControl?.errors?.['skyDateRange']?.errors?.[\n 'endDateBeforeStartDate'\n ] && labelText\n ) {\n <sky-form-error\n errorName=\"endDateBeforeStartDate\"\n [errorText]=\"\n 'skyux_date_range_picker_end_date_before_start_date_error_label_text'\n | skyLibResources\n \"\n />\n }\n <span class=\"sky-input-box-descendent-form-error\">\n <ng-content select=\"sky-form-error\" />\n </span>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper sky-date-range-picker-start-date\"\n [hidden]=\"!showStartDatePicker()\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n showStartDatePicker() && !showEndDatePicker()\n }\"\n >\n <sky-input-box\n [hasErrors]=\"startDateHasErrors()\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker (calendarDateChange)=\"onDateChange()\">\n <input\n formControlName=\"startDate\"\n name=\"startDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showStartDatePicker()\"\n (change)=\"onDateChange()\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper sky-date-range-picker-end-date\"\n [hidden]=\"!showEndDatePicker()\"\n [ngClass]=\"{ 'sky-date-range-picker-last-input': showEndDatePicker() }\"\n >\n <sky-input-box\n [hasErrors]=\"endDateHasErrors()\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker (calendarDateChange)=\"onDateChange()\">\n <input\n formControlName=\"endDate\"\n name=\"endDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showEndDatePicker()\"\n (change)=\"onDateChange()\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [".sky-date-range-picker:not(.sky-theme-modern *){--sky-override-date-range-picker-margin-right: 0;--sky-override-date-range-picker-padding-left: 5px;--sky-override-date-range-picker-padding-right: 5px;--sky-override-date-range-picker-responsive-bottom-margin: var( --sky-margin-stacked-lg )}:host{display:block}.sky-date-range-picker{display:flex}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-override-date-range-picker-responsive-bottom-margin, var(--sky-space-gap-form-l));margin-right:0}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-override-date-range-picker-responsive-bottom-margin, var(--sky-space-gap-form-l));margin-right:0}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:33.3333333333%;padding:0}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:var(--sky-override-date-range-picker-padding-left, 0)}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:var(--sky-override-date-range-picker-padding-right, 0)}:host .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:0;margin-right:var(--sky-override-date-range-picker-margin-right, var(--sky-space-gap-form-l))}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:33.3333333333%;padding:0}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:var(--sky-override-date-range-picker-padding-left, 0)}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:var(--sky-override-date-range-picker-padding-right, 0)}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:0;margin-right:var(--sky-override-date-range-picker-margin-right, var(--sky-space-gap-form-l))}@media (min-width: 768px){:host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}}.sky-responsive-container-sm :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-md :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-lg :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}\n"] }]
|
419
|
-
}], propDecorators: { calculatorIds: [{
|
420
|
-
type: Input
|
421
|
-
}], dateFormat: [{
|
422
|
-
type: Input
|
423
|
-
}], disabled: [{
|
424
|
-
type: Input,
|
425
|
-
args: [{ transform: booleanAttribute }]
|
426
|
-
}], helpPopoverContent: [{
|
427
|
-
type: Input
|
428
|
-
}], helpPopoverTitle: [{
|
429
|
-
type: Input
|
430
|
-
}], hintText: [{
|
431
|
-
type: Input
|
432
|
-
}], label: [{
|
433
|
-
type: Input
|
434
|
-
}], labelText: [{
|
435
|
-
type: Input
|
436
|
-
}], stacked: [{
|
437
|
-
type: Input,
|
438
|
-
args: [{ transform: booleanAttribute }]
|
439
|
-
}, {
|
440
|
-
type: HostBinding,
|
441
|
-
args: ['class.sky-form-field-stacked']
|
442
|
-
}], helpKey: [{
|
443
|
-
type: Input
|
444
|
-
}] } });
|
445
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxRQUFRLEVBQ1IsS0FBSyxFQUdMLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBR0wsV0FBVyxFQUNYLFdBQVcsRUFDWCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixrQkFBa0IsR0FHbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxN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LFNBQVM7c0NBQ1MsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixZQUFZLEVBQUUsb0JBQW9CO3FCQUNuQyxXQUNRO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsd0NBQXdDO3dCQUN4QywwQ0FBMEM7d0JBQzFDLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3dCQUNqQixtQkFBbUI7cUJBQ3BCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsNkJBQTZCOzRCQUN4QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDZCQUE2Qjs0QkFDeEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtxQkFDckQsWUFDUyx1QkFBdUIsY0FDckIsSUFBSTs4QkFtQkwsYUFBYTtzQkFEdkIsS0FBSztnQkE4QkMsVUFBVTtzQkFEaEIsS0FBSztnQkFXSyxRQUFRO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWUvQixrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBUUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVFDLFFBQVE7c0JBRGQsS0FBSztnQkFRSyxLQUFLO3NCQURmLEtBQUs7Z0JBb0JDLFNBQVM7c0JBRGYsS0FBSztnQkFTQyxPQUFPO3NCQUZiLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7O3NCQUNyQyxXQUFXO3VCQUFDLDhCQUE4QjtnQkFTcEMsT0FBTztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIFNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybXNNb2R1bGUsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFN0YXR1c0NoYW5nZUV2ZW50LFxuICBUb3VjaGVkQ2hhbmdlRXZlbnQsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELFxuICBTa3lGb3JtRXJyb3JzTW9kdWxlLFxuICBTa3lJbnB1dEJveE1vZHVsZSxcbn0gZnJvbSAnQHNreXV4L2Zvcm1zJztcblxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICcuLi9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kdWxlJztcbmltcG9ydCB7IFNreURhdGV0aW1lUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1kYXRldGltZS1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlUGlja2VyRW5kRGF0ZVJlc291cmNlS2V5UGlwZSB9IGZyb20gJy4vZGF0ZS1yYW5nZS1waWNrZXItZW5kLWRhdGUtcmVzb3VyY2Uta2V5LnBpcGUnO1xuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlUGlja2VyU3RhcnREYXRlUmVzb3VyY2VLZXlQaXBlIH0gZnJvbSAnLi9kYXRlLXJhbmdlLXBpY2tlci1zdGFydC1kYXRlLXJlc291cmNlLWtleS5waXBlJztcbmltcG9ydCB7IFNreURhdGVSYW5nZVNlcnZpY2UgfSBmcm9tICcuL2RhdGUtcmFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbiB9IGZyb20gJy4vdHlwZXMvZGF0ZS1yYW5nZS1jYWxjdWxhdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlLWNhbGN1bGF0b3InO1xuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlLWNhbGN1bGF0b3ItaWQnO1xuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUgfSBmcm9tICcuL3R5cGVzL2RhdGUtcmFuZ2UtY2FsY3VsYXRvci10eXBlJztcbmltcG9ydCB7IFNLWV9ERUZBVUxUX0NBTENVTEFUT1JfSURTIH0gZnJvbSAnLi90eXBlcy9kYXRlLXJhbmdlLWRlZmF1bHQtY2FsY3VsYXRvci1jb25maWdzJztcblxudHlwZSBEYXRlVmFsdWUgPSBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gYXJlRGF0ZVJhbmdlc0VxdWFsKFxuICByYW5nZUE6IFNreURhdGVSYW5nZUNhbGN1bGF0aW9uIHwgdW5kZWZpbmVkLFxuICByYW5nZUI6IFNreURhdGVSYW5nZUNhbGN1bGF0aW9uIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgISFyYW5nZUEgJiZcbiAgICAhIXJhbmdlQiAmJlxuICAgIHJhbmdlQS5jYWxjdWxhdG9ySWQgPT09IHJhbmdlQi5jYWxjdWxhdG9ySWQgJiZcbiAgICBhcmVEYXRlc0VxdWFsKHJhbmdlQS5zdGFydERhdGUsIHJhbmdlQi5zdGFydERhdGUpICYmXG4gICAgYXJlRGF0ZXNFcXVhbChyYW5nZUEuZW5kRGF0ZSwgcmFuZ2VCLmVuZERhdGUpXG4gICk7XG59XG5cbmZ1bmN0aW9uIGFyZURhdGVzRXF1YWwoYTogRGF0ZVZhbHVlLCBiOiBEYXRlVmFsdWUpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghYSAmJiAhYikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBhID09PSAnc3RyaW5nJyAmJiBhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gYSBpbnN0YW5jZW9mIERhdGUgJiYgYiBpbnN0YW5jZW9mIERhdGUgJiYgYS5nZXRUaW1lKCkgPT09IGIuZ2V0VGltZSgpO1xufVxuXG5mdW5jdGlvbiBpc051bGxPclVuZGVmaW5lZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIHVuZGVmaW5lZCB8IG51bGwge1xuICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNQYXJ0aWFsVmFsdWUoXG4gIHZhbHVlOiBQYXJ0aWFsPFNreURhdGVSYW5nZUNhbGN1bGF0aW9uPiB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiB2YWx1ZSBpcyBQYXJ0aWFsPFNreURhdGVSYW5nZUNhbGN1bGF0aW9uPiB8IG51bGwgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKFxuICAgIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSB8fFxuICAgIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlLmNhbGN1bGF0b3JJZCkgfHxcbiAgICAhKCdlbmREYXRlJyBpbiB2YWx1ZSkgfHxcbiAgICAhKCdzdGFydERhdGUnIGluIHZhbHVlKVxuICApO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnKGZvY3Vzb3V0KSc6ICdvbkZvY3Vzb3V0KCRldmVudCknLFxuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2t5RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBTa3lEYXRlUmFuZ2VQaWNrZXJFbmREYXRlUmVzb3VyY2VLZXlQaXBlLFxuICAgIFNreURhdGVSYW5nZVBpY2tlclN0YXJ0RGF0ZVJlc291cmNlS2V5UGlwZSxcbiAgICBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZSxcbiAgICBTa3lJbnB1dEJveE1vZHVsZSxcbiAgICBTa3lGb3JtRXJyb3JzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNreURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2t5RGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVELCB1c2VWYWx1ZTogdHJ1ZSB9LFxuICBdLFxuICBzZWxlY3RvcjogJ3NreS1kYXRlLXJhbmdlLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGVSYW5nZVBpY2tlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgcmVhZG9ubHkgI2RhdGVSYW5nZVN2YyA9IGluamVjdChTa3lEYXRlUmFuZ2VTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSAjaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICByZWFkb25seSAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBJRHMgZm9yIHRoZSBkYXRlIHJhbmdlIG9wdGlvbnMgdG8gaW5jbHVkZSBpbiB0aGUgcGlja2VyJ3MgZHJvcGRvd24uXG4gICAqIFRoZSBvcHRpb25zIHNwZWNpZnkgY2FsY3VsYXRvciBvYmplY3RzIHRoYXQgcmV0dXJuIHR3byBgRGF0ZWAgb2JqZWN0cyB0byByZXByZXNlbnQgZGF0ZSByYW5nZXMuXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgcHJvcGVydHkgaW5jbHVkZXMgYWxsIGBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWRgIHZhbHVlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2FsY3VsYXRvcklkcyhcbiAgICBjYWxjdWxhdG9ySWRzOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWRbXSB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgY29uc3QgY3VycmVudENhbGN1bGF0b3JJZCA9IHRoaXMuI2dldFZhbHVlKCkuY2FsY3VsYXRvcklkO1xuXG4gICAgdGhpcy4jX2NhbGN1bGF0b3JJZHMgPSBjYWxjdWxhdG9ySWRzID8/IFNLWV9ERUZBVUxUX0NBTENVTEFUT1JfSURTO1xuICAgIHRoaXMuY2FsY3VsYXRvcnMgPSB0aGlzLiNkYXRlUmFuZ2VTdmMuZmlsdGVyQ2FsY3VsYXRvcnMoXG4gICAgICB0aGlzLiNfY2FsY3VsYXRvcklkcyxcbiAgICApO1xuXG4gICAgLy8gSWYgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYWxjdWxhdG9yIGlzbid0IGF2YWlsYWJsZSBhbnltb3JlLFxuICAgIC8vIHNlbGVjdCB0aGUgZmlyc3QgY2FsY3VsYXRvciBpbiB0aGUgbmV3IGFycmF5LlxuICAgIGlmICghdGhpcy4jX2NhbGN1bGF0b3JJZHMuaW5jbHVkZXMoY3VycmVudENhbGN1bGF0b3JJZCkpIHtcbiAgICAgIHRoaXMuI3NldFZhbHVlKHsgY2FsY3VsYXRvcklkOiB0aGlzLmNhbGN1bGF0b3JJZHNbMF0gfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjYWxjdWxhdG9ySWRzKCk6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZFtdIHtcbiAgICByZXR1cm4gdGhpcy4jX2NhbGN1bGF0b3JJZHM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRhdGUgZm9ybWF0IGZvclxuICAgKiBbdGhlIGBza3ktZGF0ZXBpY2tlcmAgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGVwaWNrZXIpXG4gICAqIHRoYXQgbWFrZSB1cCB0aGUgZGF0ZSByYW5nZSBwaWNrZXIuIFRoZSB0ZXh0IGlucHV0IGlzIGEgY29tcG9zaXRlIGNvbXBvbmVudCBvZlxuICAgKiB1cCB0byB0d28gYHNreS1kYXRlcGlja2VyYCBjb21wb25lbnRzLlxuICAgKiBAZGVmYXVsdCBcIk1NL0REL1lZWVlcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGVGb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBkYXRlIHJhbmdlIHBpY2tlciBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZVxuICAgKiB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZVxuICAgKiB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy4gVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcyxcbiAgICogdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgbGFiZWxUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIGRhdGUgcmFuZ2UgcGlja2VyLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgbGFiZWxUZXh0YCBpcyBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFtQZXJzaXN0ZW50IGlubGluZSBoZWxwIHRleHRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL2d1aWRlbGluZXMvdXNlci1hc3Npc3RhbmNlI2lubGluZS1oZWxwKSB0aGF0IHByb3ZpZGVzXG4gICAqIGFkZGl0aW9uYWwgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgZm9yIHRoZSBkYXRlIHJhbmdlIHBpY2tlci5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBgbGFiZWxUZXh0YCBpbnB1dCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2xhYmVsID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQubGFiZWwnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiAxMCxcbiAgICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjogJ1VzZSB0aGUgYGxhYmVsVGV4dGAgaW5wdXQgaW5zdGVhZC4nLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgZGF0ZSByYW5nZSBwaWNrZXIncyBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZGF0ZSByYW5nZSBwaWNrZXIgaXMgc3RhY2tlZCBvbiBhbm90aGVyIGZvcm0gY29tcG9uZW50LiBXaGVuIHNwZWNpZmllZCwgdGhlIGFwcHJvcHJpYXRlXG4gICAqIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgZGF0ZSByYW5nZSBwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktZm9ybS1maWVsZC1zdGFja2VkJylcbiAgcHVibGljIHN0YWNrZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgbGFiZWxUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIHBsYWNlZCBiZXNpZGUgdGhlIGRhdGUgcmFuZ2UgcGlja2VyIGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBsYWJlbFRleHRgIGlzIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRvcnMgPSB0aGlzLiNkYXRlUmFuZ2VTdmMuY2FsY3VsYXRvcnM7XG4gIHByb3RlY3RlZCBkYXRlcGlja2VycyA9IHZpZXdDaGlsZHJlbihTa3lEYXRlcGlja2VyQ29tcG9uZW50KTtcbiAgcHJvdGVjdGVkIGhvc3RDb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDYWxjdWxhdG9yID0gdGhpcy5jYWxjdWxhdG9yc1swXTtcbiAgcHJvdGVjdGVkIHNob3dFbmREYXRlUGlja2VyID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHNob3dTdGFydERhdGVQaWNrZXIgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICNfY2FsY3VsYXRvcklkcyA9IFNLWV9ERUZBVUxUX0NBTENVTEFUT1JfSURTO1xuICAjX2xhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNfdmFsdWUgPSB0aGlzLnNlbGVjdGVkQ2FsY3VsYXRvci5nZXRWYWx1ZSgpO1xuXG4gICNob3N0SGFzQ3VzdG9tRXJyb3I6IFNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcbiAgI25vdGlmeUNoYW5nZTogKChfOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbikgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gICNub3RpZnlUb3VjaGVkOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgI2NhbGN1bGF0b3JJZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPihcbiAgICB0aGlzLiNnZXRWYWx1ZSgpLmNhbGN1bGF0b3JJZCxcbiAgICB7IG5vbk51bGxhYmxlOiB0cnVlIH0sXG4gICk7XG4gICNjYWxjdWxhdG9ySWRJbnZhbGlkID0gdGhpcy4jY3JlYXRlU3RhdHVzQ2hhbmdlU2lnbmFsKFxuICAgIHRoaXMuI2NhbGN1bGF0b3JJZENvbnRyb2wsXG4gICk7XG4gICNjYWxjdWxhdG9ySWRUb3VjaGVkID0gdGhpcy4jY3JlYXRlVG91Y2hlZENoYW5nZVNpZ25hbChcbiAgICB0aGlzLiNjYWxjdWxhdG9ySWRDb250cm9sLFxuICApO1xuXG4gICNlbmREYXRlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxEYXRlVmFsdWU+KHRoaXMuI2dldFZhbHVlKCkuZW5kRGF0ZSk7XG4gICNlbmREYXRlSW52YWxpZCA9IHRoaXMuI2NyZWF0ZVN0YXR1c0NoYW5nZVNpZ25hbCh0aGlzLiNlbmREYXRlQ29udHJvbCk7XG4gICNlbmREYXRlVG91Y2hlZCA9IHRoaXMuI2NyZWF0ZVRvdWNoZWRDaGFuZ2VTaWduYWwodGhpcy4jZW5kRGF0ZUNvbnRyb2wpO1xuXG4gICNzdGFydERhdGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sPERhdGVWYWx1ZT4odGhpcy4jZ2V0VmFsdWUoKS5zdGFydERhdGUpO1xuICAjc3RhcnREYXRlSW52YWxpZCA9IHRoaXMuI2NyZWF0ZVN0YXR1c0NoYW5nZVNpZ25hbCh0aGlzLiNzdGFydERhdGVDb250cm9sKTtcbiAgI3N0YXJ0RGF0ZVRvdWNoZWQgPSB0aGlzLiNjcmVhdGVUb3VjaGVkQ2hhbmdlU2lnbmFsKHRoaXMuI3N0YXJ0RGF0ZUNvbnRyb2wpO1xuXG4gIHByb3RlY3RlZCBmb3JtR3JvdXAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLmdyb3VwKHtcbiAgICBjYWxjdWxhdG9ySWQ6IHRoaXMuI2NhbGN1bGF0b3JJZENvbnRyb2wsXG4gICAgc3RhcnREYXRlOiB0aGlzLiNzdGFydERhdGVDb250cm9sLFxuICAgIGVuZERhdGU6IHRoaXMuI2VuZERhdGVDb250cm9sLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FsY3VsYXRvcklkSGFzRXJyb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRvdWNoZWQgPSB0aGlzLiNjYWxjdWxhdG9ySWRUb3VjaGVkKCk7XG4gICAgY29uc3QgaW52YWxpZCA9IHRoaXMuI2NhbGN1bGF0b3JJZEludmFsaWQoKSB8fCB0aGlzLiNob3N0SGFzQ3VzdG9tRXJyb3I/LigpO1xuICAgIHJldHVybiB0b3VjaGVkICYmIGludmFsaWQ7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBlbmREYXRlSGFzRXJyb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNhbGN1bGF0b3JJZEhhc0Vycm9ycyA9IHRoaXMuY2FsY3VsYXRvcklkSGFzRXJyb3JzKCk7XG4gICAgY29uc3QgdG91Y2hlZCA9IHRoaXMuI2VuZERhdGVUb3VjaGVkKCk7XG4gICAgY29uc3QgaW52YWxpZCA9IHRoaXMuI2VuZERhdGVJbnZhbGlkKCk7XG5cbiAgICByZXR1cm4gY2FsY3VsYXRvcklkSGFzRXJyb3JzIHx8ICh0b3VjaGVkICYmIGludmFsaWQpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhcnREYXRlSGFzRXJyb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNhbGN1bGF0b3JJZEhhc0Vycm9ycyA9IHRoaXMuY2FsY3VsYXRvcklkSGFzRXJyb3JzKCk7XG4gICAgY29uc3QgdG91Y2hlZCA9IHRoaXMuI3N0YXJ0RGF0ZVRvdWNoZWQoKTtcbiAgICBjb25zdCBpbnZhbGlkID0gdGhpcy4jc3RhcnREYXRlSW52YWxpZCgpO1xuXG4gICAgcmV0dXJuIGNhbGN1bGF0b3JJZEhhc0Vycm9ycyB8fCAodG91Y2hlZCAmJiBpbnZhbGlkKTtcbiAgfSk7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RDb250cm9sID0gdGhpcy4jaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCwge1xuICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICBzZWxmOiB0cnVlLFxuICAgIH0pPy5jb250cm9sO1xuXG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuI2luamVjdG9yLCAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5ob3N0Q29udHJvbCkge1xuICAgICAgICB0aGlzLiNob3N0SGFzQ3VzdG9tRXJyb3IgPSB0aGlzLiNjcmVhdGVIb3N0Q3VzdG9tRXJyb3JDaGFuZ2VTaWduYWwoXG4gICAgICAgICAgdGhpcy5ob3N0Q29udHJvbCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNldCBhIGRlZmF1bHQgdmFsdWUgb24gdGhlIGNvbnRyb2wgaWYgaXQncyB1bmRlZmluZWQgb24gaW5pdC5cbiAgICAvLyBXZSBuZWVkIHRvIHVzZSBzZXRUaW1lb3V0IHRvIGF2b2lkIGludGVyZmVyaW5nIHdpdGggdGhlIGZpcnN0XG4gICAgLy8gdmFsaWRhdGlvbiBjeWNsZS5cbiAgICBpZiAoaXNQYXJ0aWFsVmFsdWUodGhpcy5ob3N0Q29udHJvbD8udmFsdWUpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ob3N0Q29udHJvbD8uc2V0VmFsdWUodGhpcy4jZ2V0VmFsdWUoKSwge1xuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGRhdGVwaWNrZXJzJyBzdGF0dXNlcyBjaGFuZ2UsIHdlIHdhbnQgdG8gcmV0cmlnZ2VyIHRoZSBob3N0XG4gICAgLy8gY29udHJvbCdzIHZhbGlkYXRpb24gc28gdGhhdCB0aGVpciBlcnJvcnMgYXJlIHJlZmxlY3RlZCBiYWNrIHRvIHRoZSBob3N0LlxuICAgIHRoaXMuZm9ybUdyb3VwLmV2ZW50c1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZ0KSA9PiBldnQgaW5zdGFuY2VvZiBTdGF0dXNDaGFuZ2VFdmVudCksXG4gICAgICAgIG1hcCgoZXZ0OiBTdGF0dXNDaGFuZ2VFdmVudCkgPT4gZXZ0LnN0YXR1cyksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmhvc3RDb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtcbiAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICAgIG9ubHlTZWxmOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgLy8gTWFyayBhbGwgZmllbGRzIGFzIHRvdWNoZWQgaWYgdGhlIGhvc3QgY29udHJvbCBpcyB0b3VjaGVkLlxuICAgIHRoaXMuaG9zdENvbnRyb2w/LmV2ZW50c1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZ0KSA9PiBldnQgaW5zdGFuY2VvZiBUb3VjaGVkQ2hhbmdlRXZlbnQpLFxuICAgICAgICBtYXAoKGV2dDogVG91Y2hlZENoYW5nZUV2ZW50KSA9PiBldnQudG91Y2hlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogdW5rbm93bikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI25vdGlmeUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jbm90aWZ5VG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBWYWxpZGF0b3IuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgbGV0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3QgY2FsY3VsYXRvckVycm9ycyA9IHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yLnZhbGlkYXRlKGNvbnRyb2wudmFsdWUpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZUVycm9ycyA9IHRoaXMuI3N0YXJ0RGF0ZUNvbnRyb2wuZXJyb3JzO1xuICAgIGNvbnN0IGVuZERhdGVFcnJvcnMgPSB0aGlzLiNlbmREYXRlQ29udHJvbC5lcnJvcnM7XG5cbiAgICBpZiAoY2FsY3VsYXRvckVycm9ycykge1xuICAgICAgZXJyb3JzID0ge1xuICAgICAgICBza3lEYXRlUmFuZ2U6IHtcbiAgICAgICAgICBjYWxjdWxhdG9ySWQ6IHRoaXMuI2dldFZhbHVlKCkuY2FsY3VsYXRvcklkLFxuICAgICAgICAgIGVycm9yczogY2FsY3VsYXRvckVycm9ycyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gU2V0IGNhbGN1bGF0b3IgZXJyb3JzIG9uIHRoZSBzZWxlY3Qgc28gdGhhdCB0aGV5IGFwcGVhciBiZW5lYXRoIGl0LlxuICAgIHRoaXMuI2NhbGN1bGF0b3JJZENvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XG5cbiAgICBpZiAodGhpcy5zaG93U3RhcnREYXRlUGlja2VyKCkgJiYgc3RhcnREYXRlRXJyb3JzKSB7XG4gICAgICBlcnJvcnMgfHw9IHt9O1xuICAgICAgZXJyb3JzID0geyAuLi5lcnJvcnMsIC4uLnN0YXJ0RGF0ZUVycm9ycyB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNob3dFbmREYXRlUGlja2VyKCkgJiYgZW5kRGF0ZUVycm9ycykge1xuICAgICAgZXJyb3JzIHx8PSB7fTtcbiAgICAgIGVycm9ycyA9IHsgLi4uZXJyb3JzLCAuLi5lbmREYXRlRXJyb3JzIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIC8vIFRoZSBkYXRlIHJhbmdlIHBpY2tlciBhbHdheXMgaGFzIGEgdmFsdWUsIHNvIGlmIHRoZSBjb25zdW1lciBwYXNzZXMgaW4gYVxuICAvLyBwYXJ0aWFsIHZhbHVlICh2aWEgYHBhdGNoVmFsdWVgKSBvciBudWxsLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaG9zdCBjb250cm9sJ3NcbiAgLy8gdmFsdWUgd2l0aCB0aGUgY29tcGxldGUgdmFsdWUgYWZ0ZXIgaXQncyBiZWVuIG1vZGlmaWVkLlxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogUGFydGlhbDxTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbj4gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXRjaFZhbHVlKHZhbHVlKTtcblxuICAgIC8vIFVwZGF0ZSB0aGUgaG9zdCBjb250cm9sIGlmIGl0IGlzIHNldCB0byBhIHBhcnRpYWwgb3IgbnVsbCB2YWx1ZS5cbiAgICBpZiAoaXNQYXJ0aWFsVmFsdWUodmFsdWUpKSB7XG4gICAgICB0aGlzLmhvc3RDb250cm9sPy5zZXRWYWx1ZSh0aGlzLiNnZXRWYWx1ZSgpLCB7XG4gICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIG9ubHlTZWxmOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSB1c2VyIGNoYW5nZXMgdGhlIHNlbGVjdGVkIGNhbGN1bGF0b3IgSUQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25DYWxjdWxhdG9ySWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgLy8gUmVzZXQgdGhlIHZhbHVlIHdoZW4gdGhlIGNhbGN1bGF0b3IgSUQgY2hhbmdlcy5cbiAgICB0aGlzLiNzZXRWYWx1ZSh7IGNhbGN1bGF0b3JJZDogK3RoaXMuI2NhbGN1bGF0b3JJZENvbnRyb2wudmFsdWUgfSk7XG4gICAgdGhpcy5vbkRhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGEgdXNlciBpbnRlcmFjdHMgd2l0aCBhIGRhdGUgcmFuZ2UgcGlja2VyLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uRGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAvLyBXYWl0IHVudGlsIHRoZSBmb3JtIGNvbnRyb2wgaXMgdXBkYXRlZCBiZWZvcmUgcmV0cmlldmluZyBpdHMgdmFsdWUuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiNub3RpZnlDaGFuZ2U/LihcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKSBhcyBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbixcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgZGF0ZSByYW5nZSBwaWNrZXIgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Gb2N1c291dCh7IHJlbGF0ZWRUYXJnZXQgfTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHJlbGF0ZWRUYXJnZXQgJiZcbiAgICAgICF0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMocmVsYXRlZFRhcmdldCkgJiZcbiAgICAgICF0aGlzLmRhdGVwaWNrZXJzKCkuc29tZSgocGlja2VyKSA9PiBwaWNrZXIuY29udGFpbnNUYXJnZXQocmVsYXRlZFRhcmdldCkpXG4gICAgKSB7XG4gICAgICB0aGlzLiNub3RpZnlUb3VjaGVkPy4oKTtcbiAgICB9XG4gIH1cblxuICAjZ2V0Q2FsY3VsYXRvcihjYWxjdWxhdG9ySWQ6IG51bWJlcik6IFNreURhdGVSYW5nZUNhbGN1bGF0b3Ige1xuICAgIGNvbnN0IGZvdW5kID0gdGhpcy5jYWxjdWxhdG9ycy5maW5kKChjKSA9PiBjLmNhbGN1bGF0b3JJZCA9PT0gY2FsY3VsYXRvcklkKTtcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGlmOiBzYWZldHkgY2hlY2sqL1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEEgZGF0ZSByYW5nZSBjYWxjdWxhdG9yIHdpdGggSUQgKCR7Y2FsY3VsYXRvcklkfSkgY291bGQgbm90IGJlIGZvdW5kLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gICNnZXRWYWx1ZSgpOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbiB7XG4gICAgLy8gSW1wb3J0YW50ISBSZXR1cm4gYSBjbG9uZSB0byBhdm9pZCBjaGFuZ2luZyB0aGUgcHJvcGVydGllcyBieSByZWZlcmVuY2UuXG4gICAgcmV0dXJuIHsgLi4udGhpcy4jX3ZhbHVlIH07XG4gIH1cblxuICAjcGF0Y2hWYWx1ZShcbiAgICBwYXJ0aWFsVmFsdWU6IFBhcnRpYWw8U2t5RGF0ZVJhbmdlQ2FsY3VsYXRpb24+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHBhcnRpYWxWYWx1ZSkpIHtcbiAgICAgIHRoaXMuI3NldFZhbHVlKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy4jZ2V0VmFsdWUoKTtcblxuICAgIC8vIElmIHRoZSBuZXcgSUQgaXMgZGlzdGluY3QsIGVyYXNlIHRoZSBvbGQgc3RhcnQgYW5kIGVuZCBkYXRlcyBiZWNhdXNlXG4gICAgLy8gdGhleSdyZSBubyBsb25nZXIgYXBwbGljYWJsZS5cbiAgICBpZiAoXG4gICAgICAhaXNOdWxsT3JVbmRlZmluZWQocGFydGlhbFZhbHVlLmNhbGN1bGF0b3JJZCkgJiZcbiAgICAgIG9sZFZhbHVlLmNhbGN1bGF0b3JJZCAhPT0gcGFydGlhbFZhbHVlLmNhbGN1bGF0b3JJZFxuICAgICkge1xuICAgICAgZGVsZXRlIG9sZFZhbHVlLmVuZERhdGU7XG4gICAgICBkZWxldGUgb2xkVmFsdWUuc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0ge1xuICAgICAgLi4ub2xkVmFsdWUsXG4gICAgICAuLi5wYXJ0aWFsVmFsdWUsXG4gICAgfTtcblxuICAgIHRoaXMuI3NldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSB0byBiZSB1c2VkIGJ5IHRoZSBkYXRlIHJhbmdlIHBpY2tlciBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICAjc2V0VmFsdWUodmFsdWU6IFNreURhdGVSYW5nZUNhbGN1bGF0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy4jZ2V0VmFsdWUoKTtcblxuICAgIGNvbnN0IGlzVmFsdWVFbXB0eSA9ICF2YWx1ZSB8fCBpc051bGxPclVuZGVmaW5lZCh2YWx1ZS5jYWxjdWxhdG9ySWQpO1xuICAgIGNvbnN0IHZhbHVlT3JEZWZhdWx0ID0gaXNWYWx1ZUVtcHR5XG4gICAgICA/IHRoaXMuY2FsY3VsYXRvcnNbMF0uZ2V0VmFsdWUoKVxuICAgICAgOiB7XG4gICAgICAgICAgLi4udGhpcy4jZ2V0Q2FsY3VsYXRvcih2YWx1ZS5jYWxjdWxhdG9ySWQpLmdldFZhbHVlKCksXG4gICAgICAgICAgLi4udmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAvLyBFbnN1cmUgZmFsc3kgdmFsdWVzIGFyZSBzZXQgdG8gbnVsbC5cbiAgICB2YWx1ZU9yRGVmYXVsdC5lbmREYXRlID0gdmFsdWVPckRlZmF1bHQuZW5kRGF0ZSB8fCBudWxsO1xuICAgIHZhbHVlT3JEZWZhdWx0LnN0YXJ0RGF0ZSA9IHZhbHVlT3JEZWZhdWx0LnN0YXJ0RGF0ZSB8fCBudWxsO1xuXG4gICAgaWYgKCFhcmVEYXRlUmFuZ2VzRXF1YWwob2xkVmFsdWUsIHZhbHVlT3JEZWZhdWx0KSkge1xuICAgICAgdGhpcy4jX3ZhbHVlID0gdmFsdWVPckRlZmF1bHQ7XG5cbiAgICAgIGlmIChvbGRWYWx1ZS5jYWxjdWxhdG9ySWQgIT09IHZhbHVlT3JEZWZhdWx0LmNhbGN1bGF0b3JJZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2FsY3VsYXRvciA9IHRoaXMuI2dldENhbGN1bGF0b3IoXG4gICAgICAgICAgdmFsdWVPckRlZmF1bHQuY2FsY3VsYXRvcklkLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuI3VwZGF0ZVBpY2tlclZpc2liaWxpdHkodGhpcy5zZWxlY3RlZENhbGN1bGF0b3IpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHZhbHVlT3JEZWZhdWx0KTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlUGlja2VyVmlzaWJpbGl0eShjYWxjdWxhdG9yOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yKTogdm9pZCB7XG4gICAgbGV0IHNob3dFbmREYXRlUGlja2VyID0gZmFsc2U7XG4gICAgbGV0IHNob3dTdGFydERhdGVQaWNrZXIgPSBmYWxzZTtcblxuICAgIHN3aXRjaCAoY2FsY3VsYXRvci50eXBlKSB7XG4gICAgICBjYXNlIFNreURhdGVSYW5nZUNhbGN1bGF0b3JUeXBlLkJlZm9yZTpcbiAgICAgICAgc2hvd0VuZERhdGVQaWNrZXIgPSB0cnVlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yVHlwZS5BZnRlcjpcbiAgICAgICAgc2hvd1N0YXJ0RGF0ZVBpY2tlciA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreURhdGVSYW5nZUNhbGN1bGF0b3JUeXBlLlJhbmdlOlxuICAgICAgICBzaG93RW5kRGF0ZVBpY2tlciA9IHRydWU7XG4gICAgICAgIHNob3dTdGFydERhdGVQaWNrZXIgPSB0cnVlO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93RW5kRGF0ZVBpY2tlci5zZXQoc2hvd0VuZERhdGVQaWNrZXIpO1xuICAgIHRoaXMuc2hvd1N0YXJ0RGF0ZVBpY2tlci5zZXQoc2hvd1N0YXJ0RGF0ZVBpY2tlcik7XG4gIH1cblxuICAjY3JlYXRlSG9zdEN1c3RvbUVycm9yQ2hhbmdlU2lnbmFsKFxuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgKTogU2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdG9TaWduYWwoXG4gICAgICBjb250cm9sLmV2ZW50cy5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2dCkgPT4gZXZ0IGluc3RhbmNlb2YgU3RhdHVzQ2hhbmdlRXZlbnQpLFxuICAgICAgICBtYXAoKGV2dDogU3RhdHVzQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSBldnQuc291cmNlLmVycm9ycyA/PyBbXTtcbiAgICAgICAgICBjb25zdCBrbm93bkVycm9ycyA9IFsncmVxdWlyZWQnLCAnc2t5RGF0ZSddO1xuXG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycykuc29tZSgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAha25vd25FcnJvcnMuaW5jbHVkZXMoZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gICNjcmVhdGVTdGF0dXNDaGFuZ2VTaWduYWwoY29udHJvbDogRm9ybUNvbnRyb2wpOiBTaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0b1NpZ25hbChcbiAgICAgIGNvbnRyb2wuZXZlbnRzLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZ0KSA9PiBldnQgaW5zdGFuY2VvZiBTdGF0dXNDaGFuZ2VFdmVudCksXG4gICAgICAgIG1hcCgoZXZ0OiBTdGF0dXNDaGFuZ2VFdmVudCkgPT4gZXZ0LnN0YXR1cyA9PT0gJ0lOVkFMSUQnKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgI2NyZWF0ZVRvdWNoZWRDaGFuZ2VTaWduYWwoXG4gICAgY29udHJvbDogRm9ybUNvbnRyb2wsXG4gICk6IFNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRvU2lnbmFsKFxuICAgICAgY29udHJvbC5ldmVudHMucGlwZShcbiAgICAgICAgZmlsdGVyKChldnQpID0+IGV2dCBpbnN0YW5jZW9mIFRvdWNoZWRDaGFuZ2VFdmVudCksXG4gICAgICAgIG1hcCgoZXZ0OiBUb3VjaGVkQ2hhbmdlRXZlbnQpID0+IGV2dC50b3VjaGVkKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWRhdGUtcmFuZ2UtcGlja2VyXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWRhdGUtcmFuZ2UtcGlja2VyLWZvcm0tZ3JvdXAgc2t5LWRhdGUtcmFuZ2UtcGlja2VyLXNlbGVjdC1jYWxjdWxhdG9yXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWRhdGUtcmFuZ2UtcGlja2VyLWxhc3QtaW5wdXQnOlxuICAgICAgICAhc2hvd1N0YXJ0RGF0ZVBpY2tlcigpICYmICFzaG93RW5kRGF0ZVBpY2tlcigpXG4gICAgfVwiXG4gID5cbiAgICA8c2t5LWlucHV0LWJveFxuICAgICAgW2hhc0Vycm9yc109XCJjYWxjdWxhdG9ySWRIYXNFcnJvcnMoKVwiXG4gICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgIFtoZWxwUG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgIFtoZWxwUG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgW2hpbnRUZXh0XT1cImhpbnRUZXh0XCJcbiAgICAgIFtsYWJlbFRleHRdPVwiXG4gICAgICAgIGxhYmVsVGV4dCB8fFxuICAgICAgICBsYWJlbCB8fFxuICAgICAgICAoJ3NreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2RlZmF1bHRfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNhbGN1bGF0b3JJZFwiIChjaGFuZ2UpPVwib25DYWxjdWxhdG9ySWRDaGFuZ2UoKVwiPlxuICAgICAgICBAZm9yIChjYWxjdWxhdG9yIG9mIGNhbGN1bGF0b3JzOyB0cmFjayBjYWxjdWxhdG9yLmNhbGN1bGF0b3JJZCkge1xuICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImNhbGN1bGF0b3IuY2FsY3VsYXRvcklkXCI+XG4gICAgICAgICAgICB7eyBjYWxjdWxhdG9yLnNob3J0RGVzY3JpcHRpb24kIHwgYXN5bmMgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9zZWxlY3Q+XG4gICAgICBAaWYgKFxuICAgICAgICBob3N0Q29udHJvbD8uZXJyb3JzPy5bJ3NreURhdGVSYW5nZSddPy5lcnJvcnM/LltcbiAgICAgICAgICAnZW5kRGF0ZUJlZm9yZVN0YXJ0RGF0ZSdcbiAgICAgICAgXSAmJiBsYWJlbFRleHRcbiAgICAgICkge1xuICAgICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgICBlcnJvck5hbWU9XCJlbmREYXRlQmVmb3JlU3RhcnREYXRlXCJcbiAgICAgICAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgICAgICAgJ3NreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2VuZF9kYXRlX2JlZm9yZV9zdGFydF9kYXRlX2Vycm9yX2xhYmVsX3RleHQnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWlucHV0LWJveC1kZXNjZW5kZW50LWZvcm0tZXJyb3JcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWZvcm0tZXJyb3JcIiAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc2t5LWlucHV0LWJveD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1kYXRlLXJhbmdlLXBpY2tlci1mb3JtLWdyb3VwIHNreS1kYXRlLXJhbmdlLWRhdGVwaWNrZXItd3JhcHBlciBza3ktZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZVwiXG4gICAgW2hpZGRlbl09XCIhc2hvd1N0YXJ0RGF0ZVBpY2tlcigpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWRhdGUtcmFuZ2UtcGlja2VyLWxhc3QtaW5wdXQnOlxuICAgICAgICBzaG93U3RhcnREYXRlUGlja2VyKCkgJiYgIXNob3dFbmREYXRlUGlja2VyKClcbiAgICB9XCJcbiAgPlxuICAgIDxza3ktaW5wdXQtYm94XG4gICAgICBbaGFzRXJyb3JzXT1cInN0YXJ0RGF0ZUhhc0Vycm9ycygpXCJcbiAgICAgIFtsYWJlbFRleHRdPVwiXG4gICAgICAgIHNlbGVjdGVkQ2FsY3VsYXRvci50eXBlXG4gICAgICAgICAgfCBza3lEYXRlUmFuZ2VQaWNrZXJTdGFydERhdGVSZXNvdXJjZUtleVxuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxza3ktZGF0ZXBpY2tlciAoY2FsZW5kYXJEYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZSgpXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgbmFtZT1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgc2t5RGF0ZXBpY2tlcklucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICBsYWJlbFRleHQgfHwgbGFiZWxcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2RlZmF1bHRfYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgICAgOiAoc2VsZWN0ZWRDYWxjdWxhdG9yLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgICB8IHNreURhdGVSYW5nZVBpY2tlclN0YXJ0RGF0ZVJlc291cmNlS2V5XG4gICAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgICAgICAgICA6IChsYWJlbFRleHQgPyBsYWJlbFRleHQgOiBsYWJlbCkpXG4gICAgICAgICAgICAgIDogKHNlbGVjdGVkQ2FsY3VsYXRvci50eXBlXG4gICAgICAgICAgICAgICAgfCBza3lEYXRlUmFuZ2VQaWNrZXJTdGFydERhdGVSZXNvdXJjZUtleVxuICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInNob3dTdGFydERhdGVQaWNrZXIoKVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoKVwiXG4gICAgICAgIC8+XG4gICAgICA8L3NreS1kYXRlcGlja2VyPlxuICAgIDwvc2t5LWlucHV0LWJveD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1kYXRlLXJhbmdlLXBpY2tlci1mb3JtLWdyb3VwIHNreS1kYXRlLXJhbmdlLWRhdGVwaWNrZXItd3JhcHBlciBza3ktZGF0ZS1yYW5nZS1waWNrZXItZW5kLWRhdGVcIlxuICAgIFtoaWRkZW5dPVwiIXNob3dFbmREYXRlUGlja2VyKClcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3NreS1kYXRlLXJhbmdlLXBpY2tlci1sYXN0LWlucHV0Jzogc2hvd0VuZERhdGVQaWNrZXIoKSB9XCJcbiAgPlxuICAgIDxza3ktaW5wdXQtYm94XG4gICAgICBbaGFzRXJyb3JzXT1cImVuZERhdGVIYXNFcnJvcnMoKVwiXG4gICAgICBbbGFiZWxUZXh0XT1cIlxuICAgICAgICBzZWxlY3RlZENhbGN1bGF0b3IudHlwZVxuICAgICAgICAgIHwgc2t5RGF0ZVJhbmdlUGlja2VyRW5kRGF0ZVJlc291cmNlS2V5XG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPHNreS1kYXRlcGlja2VyIChjYWxlbmRhckRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKClcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiXG4gICAgICAgICAgbmFtZT1cImVuZERhdGVcIlxuICAgICAgICAgIHNreURhdGVwaWNrZXJJbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgbGFiZWxUZXh0IHx8IGxhYmVsXG4gICAgICAgICAgICAgID8gKCdza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9kZWZhdWx0X2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgICAgIDogKHNlbGVjdGVkQ2FsY3VsYXRvci50eXBlXG4gICAgICAgICAgICAgICAgICAgICAgfCBza3lEYXRlUmFuZ2VQaWNrZXJFbmREYXRlUmVzb3VyY2VLZXlcbiAgICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgICAgICAgIDogKGxhYmVsVGV4dCA/IGxhYmVsVGV4dCA6IGxhYmVsKSlcbiAgICAgICAgICAgICAgOiAoc2VsZWN0ZWRDYWxjdWxhdG9yLnR5cGVcbiAgICAgICAgICAgICAgICB8IHNreURhdGVSYW5nZVBpY2tlckVuZERhdGVSZXNvdXJjZUtleVxuICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInNob3dFbmREYXRlUGlja2VyKClcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25EYXRlQ2hhbmdlKClcIlxuICAgICAgICAvPlxuICAgICAgPC9za3ktZGF0ZXBpY2tlcj5cbiAgICA8L3NreS1pbnB1dC1ib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import { NgModule } from '@angular/core';
|
2
|
-
import { SkyFormErrorModule } from '@skyux/forms';
|
3
|
-
import { SkyDateRangePickerComponent } from './date-range-picker.component';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
export class SkyDateRangePickerModule {
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SkyDateRangePickerModule, imports: [SkyDateRangePickerComponent], exports: [SkyDateRangePickerComponent, SkyFormErrorModule] }); }
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDateRangePickerModule, imports: [SkyDateRangePickerComponent, SkyFormErrorModule] }); }
|
9
|
-
}
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDateRangePickerModule, decorators: [{
|
11
|
-
type: NgModule,
|
12
|
-
args: [{
|
13
|
-
exports: [SkyDateRangePickerComponent, SkyFormErrorModule],
|
14
|
-
imports: [SkyDateRangePickerComponent],
|
15
|
-
}]
|
16
|
-
}] });
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBTTVFLE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjtnSEFBeEIsd0JBQXdCLFlBRnpCLDJCQUEyQixhQUQzQiwyQkFBMkIsRUFBRSxrQkFBa0I7Z0hBRzlDLHdCQUF3QixZQUZ6QiwyQkFBMkIsRUFERSxrQkFBa0I7OzRGQUc5Qyx3QkFBd0I7a0JBSnBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsa0JBQWtCLENBQUM7b0JBQzFELE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuXG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQsIFNreUZvcm1FcnJvck1vZHVsZV0sXG4gIGltcG9ydHM6IFtTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlUmFuZ2VQaWNrZXJNb2R1bGUge31cbiJdfQ==
|